我正在编写一个基于Cocoa Document的应用程序。
我已经达到了可以使用
保存文档的程度 override func data(ofType typeName: String) throws -> Data {
// End editing
let jsonEncoder = JSONEncoder()
let jsonData = try jsonEncoder.encode(self)
let jsonString = String(data: jsonData, encoding: .utf8)
Swift.print(jsonString)
return jsonData
}
我有相应的阅读方法
override func read(from data: Data, ofType typeName: String) throws {
let jsonDecoder = JSONDecoder()
let rep = try jsonDecoder.decode(Document.self, from: data) as! Document
videoURL = rep.videoURL
timestamps = rep.timestamps
}
但它似乎永远不会被召唤。如果我启动应用程序并使用打开的菜单项,我希望在选择要打开的文件后调用read方法,而只是打开一个带有新文档的窗口。
我很难过。我预感它可能与info.plist或权利文件有关,但我无法理解。
我很感激任何帮助或想法。
答案 0 :(得分:0)
你走在正确的轨道上。要使Open命令起作用,它必须将其打开的文件类型与应用程序中的文档类相关联。您可以在应用程序目标设置的“信息”选项卡的“文档类型”部分中执行此操作。
选择您的应用目标,然后选择信息标签。找到“文档类型”部分。在其中,您需要定义文档类型,为其指定标识符,指定其扩展名和获取的图标,最重要的是 - 自定义NSDocument子类的类名。