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

时间:2011-06-10 10:07:15

标签: objective-c macos cocoa nswindowcontroller nsviewcontroller

我无法理解如何以单一窗口应用程序在Mac OS X中工作的最佳方式设计应用程序。我更喜欢单个文档 - 单窗口应用程序(我不编写实用程序应用程序),但它是不清楚我应该在哪里初始化窗口内容。

在iOS上,我应该使用根视图控制器的-[UIViewController viewDidLoad]-[UIViewController viewWillAppear:]方法来实现此目的。

您能否请教我任何教程或解释如何处理NSDocument - NSDocumentController - NSWindowController - NSViewController类?

感谢您的回答。 : - )

1 个答案:

答案 0 :(得分:3)

您可以将窗口逻辑放入AppDelegate,但我不鼓励它。我建议您使用自己独立的NSWindowController子类来控制窗口,即使对于单窗口应用程序也是如此。这是一个非常好的分离。

我不明白为什么要将NSDocumentController用于单窗口应用。 NSViewController旨在控制您的自定义视图。它通常不用于普通的简单Mac应用程序,除非你有一些你想特别控制的自定义视图。

因此,在您的AppDelegate中,比如applicationDidFinishLaunching:,您将分配并初始化窗口控制器并显示窗口。

Hillegass在“Cocoa Programming for Mac OS X”中有一篇关于如何使用窗口控制器的文章。当然,Apple的文档也有一些材料。