3

在添加到 mainmenu.xib 之后,我可以访问应用程序范围的委托实例,将对象的名称设置为我的 appDelegate 的名称并将 mainmenu.xib 委托设置为此对象。[NSApp delegate]NSObject

现在,我想做的是访问对象的Document,即NSDocument对象“属于”的活动。我猜这将是一个文档范围的委托实例。有时[self document]有效,但并非总是如此。有通用的方法吗?

4

3 回答 3

5

无需显式传递引用。NSViewController您可以通过以下方式访问该文档:

id document = self.view.window.windowController.document;
于 2012-08-12T13:29:58.963 回答
1

怎么样[[NSDocumentController sharedDocumentController] currentDocument]

不过要小心。请阅读 返回 nil 的 NSDocumentController currentDocument

于 2013-04-01T10:40:50.083 回答
0

对于作为文档一部分的任何子窗口,事实证明很容易创建一个非常简单的子类NSViewController并将所需信息存储在其中。这些视图控制器设置在主 Document 实现中,因此很容易传递NSDocument对象的地址。然后,任何实际的子视图都可以由视图控制器控制,该控制器是这个“管理控制器”的子类。

该解决方案不适用于每个对象,但确实需要最大的障碍并解决了我的问题...

于 2012-08-12T12:58:12.250 回答