所以我在updateChangeCount:(NSDocumentChangeType)changeType
上設置了一個斷點來查看我的文檔何時被標記爲髒。NSDocument在NSUndoManager保存後被標記爲髒 - 爲什麼?
後,我保存文檔時,它與NSChangeCleared
正確清除,它被稱爲與NSChangeDone
該遞增改變計數,然後之後。
這裏是調用堆棧跟蹤:
0 SS 0x000000010000764a -[SSDocument updateChangeCount:] + 42
1 AppKit 0x00007fff94fdcdac -[NSDocument _changeWasDone:] + 458
2 CoreFoundation 0x00007fff9c415c9c __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
3 CoreFoundation 0x00007fff9c415c2f ___CFXRegistrationPost_block_invoke + 63
4 CoreFoundation 0x00007fff9c415ba7 _CFXRegistrationPost + 407
5 CoreFoundation 0x00007fff9c415912 ___CFXNotificationPost_block_invoke + 50
6 CoreFoundation 0x00007fff9c3d26d2 -[_CFXNotificationRegistrar find:object:observer:enumerator:] + 1922
7 CoreFoundation 0x00007fff9c3d1925 _CFXNotificationPost + 693
8 Foundation 0x00007fff9b72b0fa -[NSNotificationCenter postNotificationName:object:userInfo:] + 66
9 Foundation 0x00007fff9b7ba4ad -[NSUndoManager _endUndoGroupRemovingIfEmpty:] + 535
10 Foundation 0x00007fff9b79b06b +[NSUndoManager(NSPrivate) _endTopLevelGroupings] + 484
11 AppKit 0x00007fff94bd7dca -[NSApplication run] + 844
我沒有以任何方式配置NSUndoManager。有關如何防止這種情況發生的任何建議?
這是一個問題,因爲用戶可以保存文檔,關閉窗口,然後再次請求保存。
所以我實際上試圖在我的'writeSafelyToURL'掛鉤期間禁用並重新啓用,但它仍然觸發updateChangeCount爲0,所以我的文檔被再次標記爲髒。任何其他想法?我希望我能找到觸發最終調用updateChangeCount的通知的內容。 – Geesu