我有一个基于url的文档的原型项目,我将文档信息缓存到用户默认值。用户操作统计了我想要自动保存的更改计数 - 一旦我弄清楚如何,所以显式关闭会触发标准对话框以便先保存。
选择不保存,窗口关闭 - 首先调用窗口的委托,方法 - windowShouldClose,如预期的那样。选择保存,会触发对文档方法的调用
override func save(to url: URL, ofType typeName: String, for saveOperation: NSSaveOperationType, completionHandler: @escaping (Error?) -> Void) {
do {
try self.write(to: url, ofType: typeName)
Swift.print("save(to: \(url.absoluteString) ofType: \(typeName)) ")
} catch let error {
NSApp.presentError(error)
}
}
运行完成 - 我得到调试输出,好但我怀疑有些错误,因为窗口委托方法没有被调用;关闭窗口的第二次尝试没有发生任何事故。
我感到困惑的是,更改清除没有重置的状态是不对的,允许文档在保存后关闭窗口?顺便说一句,我不更新更改计数。