【问题标题】:Mac OS X Cocoa single window application architectureMac OS X Cocoa 单窗口应用架构
【发布时间】:2011-06-10 10:07:15
【问题描述】:

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

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

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

感谢您的回答。 :-)

【问题讨论】:

    标签: objective-c macos cocoa nswindowcontroller nsviewcontroller


    【解决方案1】:

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

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

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

    Hillegass 在“Mac OS X 的 Cocoa 编程”中有一章很好地介绍了如何使用窗口控制器。当然,Apple 的文档也有一些材料。

    【讨论】:

    • NSDocumentController 可以轻松修改以处理单窗口应用程序。您想要使用它的原因是您可以通过 Cocoa 文档架构“免费”获得很多东西。
    • 但是如果你真的想专门打开和保存文档,那不是吗?其实我也没多看。只需使用 Apple 的标准单窗口应用程序模板,您就可以“免费”获得足够的资源。
    猜你喜欢
    • 1970-01-01
    • 2012-09-07
    • 2018-11-23
    • 1970-01-01
    • 2013-07-20
    • 1970-01-01
    • 2011-11-19
    • 2011-07-26
    • 1970-01-01
    相关资源
    最近更新 更多