我来自iOS背景,正在开始学习Cocoa。在iOS上,除非我们有多个目标(iPad
和iPhone
),否则通常只有一个窗口(one Window)并且使用UIViewControllers
来管理屏幕。在这种情况下,每个新屏幕大部分时间都会映射到UIViewController
。
然而,在Cocoa中似乎相反,新的屏幕/窗口由NSWindow
管理,其子组件由NSViewController
管理。因此,如果我有多个窗口应用程序,我应该为每个窗口拥有单独的NSWindowController
。
这种方法正确吗,还是我有一些误解?
UIViewController
不管理UIWindow
-UIWindow
管理UIViewController
。虽然通常一次只有一个UIViewController在屏幕上(这在iOS5中已更改为子视图控制器),但它们仍然是UIWindow的子组件。例如,UIWindow具有rootViewController属性,但viewcontroller没有window属性。现在,在OSX中,您可以拥有多个NSWindows,但它们仍然管理它们各自的NSViewControllers。简而言之,分层结构为:Window> ViewController> Views - CrimsonDiego