我的NSDocument读取方法没有被调用

时间:2018-01-19 20:47:52

标签: macos cocoa xcode9 nsdocument

我正在编写一个基于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或权利文件有关,但我无法理解。

我很感激任何帮助或想法。

1 个答案:

答案 0 :(得分:0)

你走在正确的轨道上。要使Open命令起作用,它必须将其打开的文件类型与应用程序中的文档类相关联。您可以在应用程序目标设置的“信息”选项卡的“文档类型”部分中执行此操作。

选择您的应用目标,然后选择信息标签。找到“文档类型”部分。在其中,您需要定义文档类型,为其指定标识符,指定其扩展名和获取的图标,最重要的是 - 自定义NSDocument子类的类名。

相关问题