objective-c - 我什么时候应该为 OSX 应用程序子类化 NSDocumentController ?

标签 objective-c macos cocoa nsdocument nsdocumentcontroller

我正在构建一个具有核心数据支持的基于文档应用程序(因此我的文档是NSPersistentDocument),我想知道是否需要子类 NSDocumentController 以及 NSWindowController (适用于我的应用程序中的每个窗口,因为我有多个窗口)。

我查阅了苹果文档,但在 NSDocumentController 上没有找到很好的解释,除了它说“你不太可能需要子类化它”。

有人能给我一些关于这一切如何运作的提示和场景吗?!

非常感谢任何形式的帮助!

最佳答案

子类化 NSDocumentController 的一个很好的例子(尽管它不使用 CoreData)可以在 TextEdit source code 中找到。 。查看他们的 DocumentController 类。具体来说,它们对 NSDocumentController 进行子类化以支持 transient 无标题文档。新打开的文档将取代未编辑的空无标题文档。

另一个示例用途是更改打开的文档映射到应用程序中的 NSDocument 子类的方式。默认情况下,它是一对一的,但假设您正在以与 Xcode 相同的方式开发 IDE。您可能有一个项目文档子类和一个文件文档子类。如果用户打开一个已存在于打开的项目中的文件,您可以强制该文档在该项目及其相关窗口中打开,而不是为其创建一个新的文件文档和窗口。

希望有帮助!

关于objective-c - 我什么时候应该为 OSX 应用程序子类化 NSDocumentController ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19822842/

相关文章:

ios - 在 iOS 中加载某些事件时如何禁用导航栏后退按钮?

ios - MPRemoteCommandCenter 控制中心暂停按钮即使在音频文件暂停后也不会更新

css - 如果 outline-style 设置为 "solid"(而不是 "auto"),则 Chrome 上的轮廓绘制不正确

objective-c - 如何停止当前的 NSOperation?

ios - 异步启动某些东西,然后仅在需要时等待它

cocoa - NSScrollView Bar 不滚动 NSTableView 行

cocoa - NSManagedObject 关系 NSSet 迭代

objective-c - 检查 NSString 的平衡分隔符

c++ - 检查 OSX 是否采用 24 小时制

c++ - 在 OS X 中以编程方式获取屏幕分辨率