objective-c - NSDocumentController 新文档 :

标签 objective-c cocoa

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

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

最佳答案

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

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

然后您可以覆盖您的 - (IBAction)newDocument:(id)sender 并执行您喜欢的操作。

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

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

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

相关文章:

objective-c - cocoa 中的下拉按钮

xcode - 无法杀死的虚假 NSRunningApplication 坐在我的 Dock 中?

cocoa-touch - NSImage 的 ressizedImageWithCapInsets ?

objective-c - Mac OS X View 交换

objective-c - 上下文菜单中的自定义条目

objective-c - 如何获取 NSButton 的发件人姓名

objective-c - Objective-C : How to create border effect around photos

objective-c - Swift 中的 CFNetwork 错误处理

xcode - 如何使用 Interface Builder 管理 Cocoa 应用程序中的多个窗口

cocoa - 将 NSURL 基本 URL 更改为另一个基本 URL