gpt4 book ai didi

swift - Cocoa:如何使用 NSDocument 从另一个应用程序更改文件后重新读取文件内容?

转载 作者:搜寻专家 更新时间:2023-10-31 22:53:57 25 4
gpt4 key购买 nike

我有一个基于文档的 cocoa 应用程序,它打开一个 .md 文件以一种漂亮的格式显示 Markdown 内容。如果我在另一个应用程序(如 textedit)中更改 .md 文件,我想在我的应用程序中重新加载 View 。

这是我目前所做的工作:

import Cocoa

class Document: NSDocument {

var fileContent = "Nothing yet :("

override init() {
// Add your subclass-specific initialization here.
super.init()
}

override class var autosavesInPlace: Bool {
return false
}

override func makeWindowControllers() {
// Returns the Storyboard that contains your Document window.
let storyboard = NSStoryboard(name: NSStoryboard.Name("Main"), bundle: nil)
let windowController = storyboard.instantiateController(withIdentifier: NSStoryboard.SceneIdentifier("Document Window Controller")) as! NSWindowController
self.addWindowController(windowController)
}

override func data(ofType typeName: String) throws -> Data {
throw NSError(domain: NSOSStatusErrorDomain, code: unimpErr, userInfo: nil)
}


override func read(from data: Data, ofType typeName: String) throws {
fileContent = (try String(data: data, encoding: .utf8))!
}


// this fn is called every time textEdit changes the file content.
override func presentedItemDidChange() {
// Here is the PROBLEM:
// HOW do I access the new file content?

}


}

这是问题所在presentedItemDidChange() 每次 textEdit 进行更改时都会被调用。效果很好。但我终究无法弄清楚如何访问新的文件内容,因此我可以重新分配fileContent = newContent。有什么想法吗?

最佳答案

我会调用文档 readFromURL:ofType:error: 描述 here .

关于swift - Cocoa:如何使用 NSDocument 从另一个应用程序更改文件后重新读取文件内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53175886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com