我有一个用于macOS的只读音乐播放器应用程序,该应用程序使用NSDocument免费获取所有文件处理逻辑。
我现在遇到的问题是,每次打开一个或多个播放器窗口时,应用程序崩溃(或被调试器停止)时,它们会在重新启动应用程序时自动重新打开。我不希望这样,因为它会干扰调试,并且此应用程序实际上不会发生合法崩溃。
Apple的NSDocument文档中没有有关重新打开文件的任何内容,因此我很不走运。有适当的方法做到这一点吗?
答案 0 :(得分:0)
迅速5 版本:
class override func restoreWindow(withIdentifier identifier: NSUserInterfaceItemIdentifier, state: NSCoder, completionHandler: @escaping (NSWindow?, Error?) -> Void) {
if (NSApp.delegate as! AppDelegate).disableDocumentReOpening {
completionHandler(nil, NSError.init(domain: NSCocoaErrorDomain, code: NSUserCancelledError, userInfo: nil) )
}
else
{
super.restoreWindow(withIdentifier: identifier, state: state, completionHandler: completionHandler)
}
}
在必要时,您的应用程序委托(AppDelegate)设置的是标志;在收到应用程序事件以打开文件后,我需要它。