4
我正在爲現有應用程序編寫一個插件,我需要捕獲受撤消和重做操作影響的修改過的文本和範圍。我能夠訪問應用程序創建的NSUndoManager和NSTextView,並且能夠註冊通知。有沒有一種方法可以利用這些元素來獲取已撤消/重做的文本組?捕獲NSTextView中的撤消和重做編輯文本組
我正在爲現有應用程序編寫一個插件,我需要捕獲受撤消和重做操作影響的修改過的文本和範圍。我能夠訪問應用程序創建的NSUndoManager和NSTextView,並且能夠註冊通知。有沒有一種方法可以利用這些元素來獲取已撤消/重做的文本組?捕獲NSTextView中的撤消和重做編輯文本組
我還沒有這樣做,所以我只是通過文檔/知識。
因爲你有權訪問textview,你可以成爲一個textview委託。然後,您會收到有用的消息......
文本更改前:
文字修改後:
我不知道你是否會接受這些變化(做的UndoManager繞過這個東西?),但你可能。無論如何,您可以在處理先前的消息時查詢選擇設置。
選擇更改之前:
後:
UndoManager應該告訴您它正在執行撤消過程,這意味着您可以區分普通更改和基於撤消的更改。
這似乎足以繼續,我希望它有幫助。
除了這些NSUndoManager通知之外,你的回答讓我走上了正確的軌道:NSUndoManagerCheckpointNotification,NSUndoManagerDidOpenUndoGroupNotification,NSUndoManagerDidCloseUndoGroupNotification等等。我不相信有一種「簡單」的方式來做我想做的事,但我認爲結合這些通知會得到我在那裏。謝謝! – afrederick