Objective c NSDocumentController新文档:

Objective c NSDocumentController新文档:,objective-c,cocoa,Objective C,Cocoa,我正在尝试覆盖基于Cocoa文档的应用程序中的newDocument:。我有一个标准的项目,当在菜单栏中单击New时,第一个响应者接收操作。我的目标是在菜单栏中单击new(有点像Photoshop)时,显示一个包含新文档配置的窗口。在阅读了Apple文档之后,我发现我需要重写NSDocumentController子类中的newDocument:。然后,我设置在调用newDocument:时应显示一个配置窗口 使用NSDocumentController子类的最佳方式是什么?我可以在Interf

我正在尝试覆盖基于Cocoa文档的应用程序中的newDocument:。我有一个标准的项目,当在菜单栏中单击New时,第一个响应者接收操作。我的目标是在菜单栏中单击new(有点像Photoshop)时,显示一个包含新文档配置的窗口。在阅读了Apple文档之后,我发现我需要重写NSDocumentController子类中的newDocument:。然后,我设置在调用newDocument:时应显示一个配置窗口


使用NSDocumentController子类的最佳方式是什么?我可以在Interface Builder中拖出一个对象,并将该方法连接到主菜单栏,但我不确定这是否是一种好的做法。我应该如何使用我的NSDocumentController作为菜单栏的新第一响应者?

NSDocumentController是一个单例,您必须始终使用方法
[NSDocumentController sharedDocumentController]
访问您的子类

  • 在maimenu.xib中,拖动NSObject并将自定义类指向NSDocumentController子类,这是必要的,因为Cocoa生态系统在创建任何其他类之前创建singleton
然后,您可以覆盖您的
-(iAction)newDocument:(id)sender
,并执行您喜欢的操作

它有点旧,但当我需要为NSDocumentController子类时,我发现源代码非常有用

下图显示了XCode中的元素

谢谢!我需要完全做到这一点(覆盖
newDocument:
),而您的指令非常有效。