objective-c - Mac OS X Cocoa 单窗口应用架构

标签 objective-c macos cocoa nswindowcontroller nsviewcontroller

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

在 iOS 上,我应该使用 Root View Controller 的 -[UIViewController viewDidLoad]-[UIViewController viewWillAppear:] 方法。

你能给我一些教程或解释如何处理 NSDocument - NSDocumentController - NSWindowController - NSViewController 类吗?

感谢您的回答。 :-)

最佳答案

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

我不明白为什么有人会想要将 NSDocumentController 用于单窗口应用程序。 NSViewController 用于控制您的自定义 View 。它通常不会用在一般的简单 Mac 应用程序中,除非您有一些要专门控制的自定义 View 。

因此,在您的 AppDelegate 中,例如 applicationDidFinishLaunching:,您将分配和初始化窗口 Controller 并显示窗口。

Hillegass 在“Cocoa Programming for Mac OS X”中有一章很好地介绍了如何使用窗口 Controller 。当然,Apple 的文档中也有一些资料。

关于objective-c - Mac OS X Cocoa 单窗口应用架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6304884/

相关文章:

python - 属性错误 : 'module' object has no attribute 'PROTOCOL_TLSv1_2' with Python 2. 7.11

cocoa - 将 NSMenu 命令传输到当前窗口?

swift - 如何在没有 Xcode 的情况下链接 CocoaPods 库(integrate_targets false)

cocoa - NSArray 到核心数据项

objective-c - CoreAnimation : warning, 删除了未提交 CATransaction 的线程;

ios - cocoa pod mach-o 错误

objective-c - 在 UITableView 初始化中设置选定的单元格

iphone - 如何以编程方式检查 iPhone 上安装了哪些国际键盘?

ios - 为什么我的 NSOperationQueue 在暂停时不停止执行?

objective-c - 从 C 代码使用 Objective C 类