在Cocoa应用程序上禁用基于文档的功能

时间:2016-11-06 17:40:35

标签: xcode macos nsdocument document-based

我在XCode上为MacOS项目启动了一个基于文档的项目。我现在意识到我不需要这个功能,它可能会导致问题和延迟我的进展。

有没有办法禁用此功能?

1 个答案:

答案 0 :(得分:1)

要保证文档无法打开,您只需在应用代理中实施application(_: openFile:)application(_: openFiles:)即可。这些是在打开任何文件时调用的方法,默认情况下,这些消息只是拖拽到NSDocumentController,它负责整个基于文档的应用程序。如果您实现其中一种方法来执行除调用NSDocument体系结构之外的其他方法,则可以在删除基于文档的系统的其余部分时保持打开文件的能力。

但请记住,Open和Open Recent等菜单项仍将路由到NSDocumentController并使用旧行为。要完全删除基于文档的功能:

  • 摆脱您的NSDocument子类(或者只是禁用它们)
  • 删除Info.plist中对这些类的引用
  • 删除所有特定于文档的菜单项(如保存)

    我建议您坚持使用Open项目;即使在单窗口或鞋盒应用程序中,能够打开文档也很方便。

  • 如果您的主nib文件或主故事板场景中有NSDocumentController或子类,请删除它,或者至少确保没有明确路由到它的操作

    < / LI>
  • 如果您有使用NSDocumentController的任何代码,请将其删除