我在NSPersistentDocument
窗口中有NSTextView
。我將文本字段的內容綁定到「二進制數據」核心數據字段,但是當我在文本視圖中鍵入文本時,文檔標題欄在文本視圖失去焦點之前不會說「已編輯」。因此,如果我在編輯後退出,則不會保存新數據。NSPersistentDocument中的NSTextView不更新髒標誌,直到失去第一響應者
如果我將NSContinuouslyUpdatesValueBindingOption
標誌傳遞給文本視圖綁定,立即出現「已編輯」,但性能確實在長文檔中受到影響。
如何讓核心數據知道未保存的更改,而無需實際分配每次更改的所有文本數據?
(這個問題是像「Binded NSTextField doesn't update the entity until it lose the focus」除了我不能使用NSContinuouslyUpdatesValueBindingOption
,因爲它使編輯操作很慢。)
'setDocumentEdited:'是NSWindow方法,而不是NSDocument方法。它在您更新文檔的更改計數時由文檔自動調用;一個基於文檔的應用程序應該永遠不需要直接發送'setDocumentEdited:'窗口。 (實際上,我想知道'setDocumentEdited:'的描述是否比NSDocument更早。) – 2013-03-17 23:49:23
所以你還建議添加一個鉤子來在保存被觸發時手工更新Core Data模型?核心數據是否知道需要保存,因爲窗口的「documentEdited」標誌已設置? – alltom 2013-03-18 00:09:56