基于URL的文档保存

时间:2017-07-26 01:24:17

标签: macos url swift3 nsdocument

我有一个基于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)
    }
}

运行完成 - 我得到调试输出,好但我怀疑有些错误,因为窗口委托方法没有被调用;关闭窗口的第二次尝试没有发生任何事故。

我感到困惑的是,更改清除没有重置的状态是不对的,允许文档在保存后关闭窗口?顺便说一句,我更新更改计数。

0 个答案:

没有答案