NSDocumentController newDocument:

时间:2013-09-07 02:17:00

标签: objective-c cocoa

我试图覆盖newDocument:在我的Cocoa Document Based Application中。我有一个标准项目,当在菜单栏中单击New时,First Responder会收到操作。我的目标是在菜单栏中点击New时出现一个带有新文档配置的窗口(有点像Photoshop)。在阅读Apple Docs之后,我发现我需要覆盖newDocument:在NSDocumentController子类中。然后我设置一个配置窗口应该在调用newDocument:时出现。

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

1 个答案:

答案 0 :(得分:4)

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

  • 在maimenu.xib中拖动一个NSObject并将自定义类指向您的NSDocumentController子类,这是必要的,因为Cocoa生态系统在任何其他类
  • 之前创建单例

然后,您可以覆盖- (IBAction)newDocument:(id)sender并按照您的喜好进行操作。

有点老了,但是当我需要子类化NSDocumentController时,我发现Seashore源代码非常有用

下图显示了XCode中的元素 enter image description here