Cocoa如何处理多个视图?

时间:2013-10-18 05:56:25

标签: cocoa nsview nswindow

我已经使用Storyboards在iOS上进行了一些开发。现在我在Mac OS X的应用程序上构建,似乎不存在Storyboards的等价物。

例如,我需要构建某种向导,其中包含四个不同的窗口或视图(步骤1到4)。

目前,我已经创建了一个Window xib(标准MainMenu.xib),其中包含一个包含第一个视图的窗口,另外还包含三个自定义视图。使用这种方法,我可以创建 outlet actions ,这使我能够更改窗口的contentView,例如单击按钮时。这似乎是一个公平的解决方案,我的观点都在一个xib中干净地分组。但这也导致所有视图的逻辑应该由同一个文件的所有者处理,对吧?例如,保存每个步骤的设置并控制不同视图之间的交互。

如何处理这种情况的首选方法?我应该创建四个不同的窗口,也许在四个不同的xib文件中?如果你知道一个示例项目,从互联网上显示如何处理多个窗口,请给我一个提示。

2 个答案:

答案 0 :(得分:2)

您可以为此目的使用NSViewController类。每个视图控制器将负责加载与其关联的xib,并且与视图关联的所有逻辑都可以进入控制器内部(与iOS中相同)。 MainMenu.xib现在可以在初始化所需的视图控制器后加载适当的视图。

这是一个示例应用程序供您参考。 https://developer.apple.com/library/mac/samplecode/ViewController/Introduction/Intro.html

答案 1 :(得分:0)

在xcode中,转到File-> New-> New File 添加一个目标C类并将其设置为“NSViewController”的子类。 这将自己创建yourController.h,yourController.m和yourController.xib。 现在,您可以保持视图和控制器类的独立性。