我在NSPopover中有一個NSSearchField。單擊NSStatusBar項目時會打開此彈出窗口。強制NSSearchField在它成爲第一個響應者時開始編輯
在我的NSPopover的視圖控制器的viewWillAppear()
中,我在我的NSSearchField上調用self.view.window?.makeFirstResponder(searchField)
。我希望此搜索字段在彈出窗口顯示時準備好進行編輯。通過準備編輯,我的意思是用戶不必點擊NSSearchField內部即可開始輸入。
在這一點上,我的實現並不總是工作。有時候,它起作用,並且隨着搜索字段的準備,光標閃爍,彈出窗口打開。但是,大多數情況下,特別是當我在打開彈出窗口時在不同的應用程序中編輯文本時,必須單擊NSSearchField進行編輯。
我已將子搜索字段重寫並覆蓋了becomeFirstResponder()
方法,並且我可以確認它每次都會被調用。
當字段成爲第一響應者時,我怎麼能不能「竊取」從其他應用程序編輯我的搜索字段的權利?這甚至有可能嗎?
這可能是可能的,但不推薦;從另一個應用程序竊取重點本質上就像惡意軟件一樣。 –
我明白你的觀點。也就是說,有些應用程序會這樣做:如果您正在輸入文本字段並打開消息應用程序,則您輸入消息的NSTextField可以自動編輯。也許這種行爲只適用於Apple? – elliottbolzan
通常它是一個應用程序的助手工具,將被安裝,然後授予該類型的行爲的權限;不是Apple專用的應用程序。 –