我有一个基于文档的应用程序,它有两种文档类型。第一NSDocument
个子类是“主”文档(mainDoc),它的.xib
文件是应用程序的主编辑窗口。第二NSDocument
类是数据源文件 (dataDoc),其中一组保存在用户的 Application Support 文件夹中,并且打开该组(或子集)以供 mainDoc 窗口使用。可以编辑 dataDoc 文件,这是在他们自己的窗口中从他们自己的 .xib 文件中完成的。
打开 dataDocs 而不创建它们的窗口是直截了当的,openDocumentWithContentsOfURL:display:completionHandler:
但是在它们被编辑后保持它们打开(即它们的唯一NSWindowController
被关闭)不是。我创建了一个NSWindowController
子类,认为这会有所帮助。但是,覆盖并没有帮助,因为如果文档最后关闭(如 Apple 文档中所述),shouldCloseDocument
无论我的意愿如何,该文档都会关闭。NSWindowController
如何关闭我的文档窗口但保持文档打开?我错过了什么明显的东西吗?
我想到的一种可能性是将 mainDoc 的窗口控制器添加到所有打开的 dataDocs 的窗口控制器中。这是最好的解决方案吗?它看起来不优雅,需要一些填充物。
另一种可能性是在每次关闭 dataDoc 后重新打开它,但这更不优雅,我认为它是最后的手段。
感谢您的任何帮助!