2012-04-09 78 views
3

我有一个包含几个相当复杂的视图的窗口。现在,我使用一个NSWindowController来控制窗口和所有视图的UI。它正在成为一个相当庞大的班级,因为它处理每个视图的细节。将多个NSViewControllers连接到笔尖

尽管视图行为彼此独立,所以我看到了将每个视图的UI逻辑放入单独控制器的机会。

按照Mac App Programming Guide,这正是视图控制器是:

使用视图控制器来分配工作管理更复杂的 窗口布局。您的视图控制器一起工作 (带有窗口控制器)来显示窗口内容。

但是,我找不到任何文档或例子说明这个想法在实践中如何工作。除了窗口控制器之外,我还可以将多个视图控制器添加到nib文件吗?

回答

3

如果您将视图控制器添加到笔尖,那么它们将被实例化,并且您会将IBOutlet s添加到窗口控制器(假设这是笔尖的文件所有者)以连接它们。

然而就内存而言,该方案可能会变得昂贵,特别是您拥有的视图控制器越多。您可能想要考虑在窗口控制器中懒惰地实例化它们(即只在需要时才这样做),假设这在第一次呈现视图之前不会导致令人反感的延迟。

不要害怕尝试这两种方法。其中之一可能对你最好。

在任何情况下,我都鼓励您决定将所有代码分解为单独的控制器。非常好。祝你好运。