【问题标题】:NSDocumentController newDocument:NSDocumentController 新文档:
【发布时间】:2014-01-09 16:53:24
【问题描述】:

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

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

【问题讨论】:

    标签: objective-c cocoa


    【解决方案1】:

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

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

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

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

    下图显示了 XCode 中的元素

    【讨论】:

    • 谢谢!我需要这样做(覆盖newDocument:),您的指示效果很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-08
    • 1970-01-01
    相关资源
    最近更新 更多