Cocoa 如何更改窗口中处于活动状态的视图?

Cocoa 如何更改窗口中处于活动状态的视图?,cocoa,interface-builder,nsview,Cocoa,Interface Builder,Nsview,我现在正在开发的程序有点麻烦,因为它从一个中央菜单开始,然后一旦用户从中选择一个选项,它就会在一个新窗口中打开他们的选择,当我有一个非常好的窗口时,我可以(至少显然)重新调整用途以达到这个效果。我一直在阅读有关视图的内容,我理解它所说的关于视图层次结构之类的内容,但是交换哪个视图处于活动状态的方法让我感到困惑。我需要做什么才能让它“清除”初始菜单,并将其替换为包含用户所选内容的另一个视图?听起来您根本不想更改视图,而是更改加载到视图中的模型 最简单的方法可能是为窗口的控制器提供一个属性,通过该属

我现在正在开发的程序有点麻烦,因为它从一个中央菜单开始,然后一旦用户从中选择一个选项,它就会在一个新窗口中打开他们的选择,当我有一个非常好的窗口时,我可以(至少显然)重新调整用途以达到这个效果。我一直在阅读有关视图的内容,我理解它所说的关于视图层次结构之类的内容,但是交换哪个视图处于活动状态的方法让我感到困惑。我需要做什么才能让它“清除”初始菜单,并将其替换为包含用户所选内容的另一个视图?

听起来您根本不想更改视图,而是更改加载到视图中的模型

最简单的方法可能是为窗口的控制器提供一个属性,通过该属性,视图可以访问拥有部分模型的另一个控制器(菜单中的每个项目都有一个这样的控制器)。然后,您只需切换该控制器


在该属性的setter中,您可能需要向某些视图发送消息,例如
reloadData
,具体取决于这些视图的类型。使用绑定或KVO观察更改的视图不需要这样做。

通过使用
NSTabView
保存我要查找的每个视图,找到了一个简单的解决方案