有時候有必要強制結束當前正在進行的任何編輯。例如,如果用戶在我的文檔的字段中輸入值,然後單擊預覽窗口,或者從菜單中選擇「打印」或「保存」。我可以在不中斷焦點的情況下結束對字段編輯器控件的編輯嗎?
問題是,通過強制結束編輯(通過要求NSWindow使自己成爲第一響應者,或通過在窗口上調用endEditingFor:),第一個響應者焦點不再位於該問題的字段中。這在某些情況下會對用戶造成破壞,在這種情況下,所採取的操作是迭代的,並不意味着他們在文檔上的工作結束。
我第一次嘗試解決這個問題的方法是注意當前firstResponder是什麼,然後在使用NSWindow的「makeFirstResponder:」結束編輯後恢復它。這工作正常,但它有不良影響,例如在NSTextFields上將字段編輯器中的選擇重置爲字符串內容的整個長度。
是否有一些技巧可以用來強制整個系統的「endEditing」方法被調用,而不會中斷當前的字段編輯器?
感謝, 丹尼爾
謝謝,也許這是最好的嘗試。我會看看它是如何發展。 – danielpunkass 2009-02-25 22:24:19