我有一個簡單的基於文檔的應用程序,它只是簡單地創建一個自定義XML文件。它使用「大綱視圖」導航XML文檔。選擇「大綱視圖」中的項目時,自定義視圖將顯示爲文檔視圖的子視圖,以允許用戶輸入數據。其中一個視圖有NSTextField。它有「允許撤消」標誌設置。我進行了測試,以確保在編輯完成時在NSDocument上調用了撤消管理器。因此,控制似乎正在響應第一響應者,因爲它應該。無法從NSTextField成功註冊撤消
在IBAction中,我使用ActionName,因此它將在菜單中正確顯示。現在是這個問題。不僅ActionName不顯示在菜單中,而且單擊撤消操作也不會顛倒在NSTextField上採取的操作,而是在其之前註冊的操作。在使用NSTextField設置撤消時,是否有我忽略的一些內容?
(IBAction爲)textFieldChanged:(ID)發送{
...這裏的一些代碼...
[自我的UndoManager] setActionName:@ 「更改文本」];
}提前
感謝, 羅布
文本字段和大綱視圖位於同一窗口中,但位於分割視圖的不同側。刪除和替換文本字段不起作用。你知道在文本字段上調用IBAction之前是否調用了撤銷管理器? – Rob 2010-09-03 15:26:57
我終於搞定了。我必須關閉IB中的「Allows Undo」,然後使用委託「 - (BOOL)控制:(NSControl *)控制textShouldEndEditing:(NSText *)fieldEditor」並直接調用registerUndoWithTarget命令。 – Rob 2010-09-03 18:13:56