NSViewControllers是否存在于NSWindowControllers中?

时间:2015-03-23 18:18:04

标签: objective-c macos cocoa interface-builder

刚开始学习如何为Mac制作应用,我对NSViewControllersNSWindowControllers如何协同工作有疑问。如果我正确理解这一点,NSWindowControllers是Objective-C类,它们处理与我的应用程序显示的特定窗口相关的所有代码。 NSViewControllers也是围绕某组视图的Objective-C类。

如果我到目前为止在正确的轨道上,我是否有意义为每个我想要交换进出主窗口的视图/屏幕创建一个新的NSViewController?或者我应该将我的视图元素直接添加到NSWindowController中,并根据需要找出在窗口内/窗口中交换各个元素的方法吗?

1 个答案:

答案 0 :(得分:0)

放置控制器逻辑的位置取决于应用程序,窗口或视图的复杂程度。大多数简单的应用程序将所有内容都放入其应用程基于NSDocument的应用程序通常将所有内容放入其NSDocument子类中......如果您有多个窗口(具有不相似的行为),则可能更容易将其控制器代码分解为不同的NSWindowController子类。您通常不需要NSViewControllers,除非视图(或视图集)的复杂性超出您想要放入(可能已经过载)的NSWindowController。

在你的情况下,你正在交换大量的(子)视图,每个(子)视图集都在他们自己的NSViewController上工作,这可能会简化一些事情。

在这种情况下,NSWindowController只是作为NSViewController控制器...; - )