У меня есть приложение на основе документа для какао, которое открывает файл .md для отображения содержимого уценки в хорошем формате. Если я изменю файл .md в другом приложении, таком как textedit, я хочу перезагрузить представления в моем приложении.
Вот что я работаю до сих пор:
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 вносит изменения. Это прекрасно работает. Но я не могу до конца жизни понять, как получить доступ к новому file content
, поэтому я могу переназначить fileContent = newContent
. Какие-нибудь мысли?