我的意思是,说真的,我根本不懂。
我正在编写这个应用程序,我需要一个侧边栏来更改窗口主要部分的内容。
我阅读了几篇关于ViewController,WindowController等的文档。我不明白的是这一切都应该是“简单”甚至是模块化的。
所以,让我们来看看这个例子。
我有这个应用程序,它由左侧的简单菜单和中间的主视图组成,可能包含也可能不包含子菜单(基于我们正在查看的页面)。我希望这些视图位于同一窗口,并且彼此独立。主屏幕应该只显示其内容,而不是对菜单,窗口等有任何了解。
我创建了几个ViewControllers,一个用于我想向用户显示的每个视图,每个视图都有一个Xib文件,我可以在其中绘制我想要显示的界面。
如何根据用户在左侧尺寸上选择的内容更改主视图?我不是在谈论代码本身,而是关于它背后的逻辑应该如何工作。
窗口控制器是否应该知道它的碎片?主菜单是否应包含主窗口以便更改?我应该在主窗口中使用占位符(自定义视图)来插入其他视图吗?
答案 0 :(得分:2)
您想要使主视图独立于菜单,窗口等是一个很好的愿望。当然没有一种方法可以做到这一点,但我这样做的方法是让窗口控制器成为处理菜单输入并将主视图区域切换到正确视图的对象。
为了实际处理切换视图,我使用的NSTabView就是为了这个目的而制作的。您可以在Interface Builder中进行设置,使其不会实际绘制标签,对用户“不可见”,只需以编程方式切换标签。
一个带有选项卡视图的挂起是它本质上不是为了在多个视图控制器的视图之间切换而设计的(NSViewController是Cocoa历史中一个相对较新的类)。因此,您必须让窗口控制器保持(强)对视图控制器的引用(即拥有它们),并根据需要将它们的视图移交到选项卡视图。我在许多应用程序中使用了这种精确的方法,并且效果很好。