Mac OS X Cocoa 单窗口应用程序架构

5
我不明白如何为单窗口应用程序在Mac OS X上设计最佳应用程序。 我更喜欢单文档 - 单窗口应用程序(我不是编写实用程序),但不清楚应该在哪里初始化窗口内容。
在iOS上,我应该使用根视图控制器的-[UIViewController viewDidLoad]-[UIViewController viewWillAppear:]方法来实现此目的。
请问您能否提供任何教程或解释如何处理NSDocument - NSDocumentController - NSWindowController - NSViewController类?
感谢您的回答。 :-)
1个回答

3
您可以将窗口逻辑放入AppDelegate中,但我不建议这样做。我建议为控制窗口创建自己的单独的NSWindowController子类,即使是单窗口应用程序也是如此。这是非常好的分离。
我不明白为什么一个单窗口应用程序要使用NSDocumentController。NSViewController用于控制您的自定义视图。除非您有一些想要特别控制的自定义视图,否则通常不会在普通的简单Mac应用程序中使用它。
因此,在您的AppDelegate中,例如在applicationDidFinishLaunching中,您将分配和初始化窗口控制器并显示窗口。
Hillegass的"Cocoa Programming for Mac OS X"一书中有一章关于如何使用窗口控制器的好文章。当然,苹果的文档也有一些相关材料。

NSDocumentController可以很容易地修改为处理单窗口应用程序。你想使用它的原因是,使用Cocoa文档架构,你可以获得很多免费的功能。 - Rob Keniger
2
但是,如果你确实想要特别打开和保存文档,那不是很好吗?实际上,我并没有深入研究过这个问题。使用苹果标准的单窗口应用程序模板就可以得到足够的“免费”功能。 - Enchilada

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接