我正在尝试覆盖 newDocument: 在我的基于 Cocoa 文档的应用程序中。我有一个标准项目,当在菜单栏中单击 New 时,First Responder 会收到该操作。我的目标是在菜单栏中单击“新建”(有点像 Photoshop)时,显示一个包含新文档配置的窗口。阅读 Apple Docs 后,我发现我需要在 NSDocumentController 子类中覆盖 newDocument: 。然后我设置在调用 newDocument: 时应该出现一个配置窗口。

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

最佳答案

NSDocumentController 是一个单例,你必须使用 [NSDocumentController sharedDocumentController] 方法访问你的子类 总是 同意这一点你应该

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

    然后你可以覆盖你的 - (IBAction)newDocument:(id)sender 并做你喜欢的。

    它有点旧,但当我需要继承 NSDocumentController 时,我发现 Seashore 源代码非常有用

    下图显示了 XCode 中的元素

    关于objective-c - NSDocumentController newDocument :,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18669020/

    10-10 20:32