我来自 iOS 背景并开始学习 Cocoa。在 iOS 上,除非我们有针对 iPad
和 iPhone
的多个目标,否则我们通常有一个 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/