objective-c - NSWindowController 与 NSViewController 之间的区别

标签 objective-c cocoa-touch cocoa cocoa-design-patterns nswindowcontroller

我来自 iOS 背景并开始学习 Cocoa。在 iOS 上,除非我们有针对 iPadiPhone 的多个目标,否则我们通常有一个 Window 并使用 UIViewControllers。大多数情况下,每个新屏幕都会映射到 UIViewController

但是在 cocoa 上,这似乎是另一种方式,新屏幕/窗口由 NSWindow 管理,它的子组件由 NSViewController 管理。因此,如果我有多个窗口应用程序,我应该为每个窗口设置单独的 NSWindowController

这种方法是正确的还是我有误解?

最佳答案

通过 iPhone SDK 和 Leopard SDK,他们引入了 View Controller ,或 NSViewController 和 UIViewController。正如他们的名字所暗示的那样,他们所做的是管理 View

View Controller 用于管理 View 。当前 UI 设计的趋势是单窗口、多 View 。这意味着有一个窗口,在它里面,为不同目的设计的不同组的 View 可以交换进出。因此,View Controllers 为程序员处理这些以建立良好的模式。 目前 View Controller 对于 iPhone 和 iPod touch 编程非常重要,因为该平台基于单窗口和多 View 模型。但是,在我看来,使用 View Controller 在 Mac 上并不流行。 像 NSWindowController 这样的窗口 Controller 怎么样?它的对应物 UIWindowController 对于 iPhone 和 iPod touch 环境不存在,因为这些环境只有一个窗口。 与 View Controller 不同,NSWindowController 用于基于文档的程序。好吧,基于文档的程序可以使用多个窗口。因此,有理由认为 NSWindowController 是针对 Apple 文档中所说的基于文档的程序。

关于objective-c - NSWindowController 与 NSViewController 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11060935/

相关文章:

objective-c - 计算月末或最后一秒

objective-c - UIPopoverController 和 UIImagePickerController 崩溃

cocoa - 将 Apple 的型号标识符 (MacBookPro5,1) 转换为用户友好的名称?

objective-c - 转到另一个选项卡时如何暂停 MPMoviePlayerController?

ios - 我们可以监控和测距未知的信标吗?

iphone - 如何从 Xcode 4 标记 Git 存储库

带光环的 iPhone MKMapView 图钉

iphone - 我怎样才能像 UIActionSheet 一样从屏幕底部呈现一个 UIView?

iphone - 创建 3d 立方体,使用上下左右触摸移动控制旋转 iPhone, iOS

cocoa - 如何以编程方式将新的 NSToolbarItem 添加到现有工具栏?