0

我有一個NSPopUpButton,甚至是一個簡單的子類NSPopUpButton。 在子類中,我有:如何讓NSPopUpButton接受firstResponder狀態?

- (BOOL)acceptsFirstResponder { return YES; }

- (BOOL)refusesFirstResponder { return NO; }

現在,它很容易告訴窗口,使按鈕第一響應,而適用於發射,但我需要這也發生如nextResponder從NSTextField中跳出。 一旦焦點位於任何NSTextField上,它似乎永遠不會移回到popupbutton。

我在這裏錯過了什麼? 它看起來應該非常簡單。

答案:firstResponder不是在這裏使用的東西。需要一個子類(我懷疑),並只需要重寫以下返回YES: - (BOOL)canBecomeKeyView { return YES; }(感謝彼得Hosey)

+0

你可以給我們一個窗口中的控件列表以及它們中的每一個上設置nextResponder的內容嗎? – 2013-03-21 17:39:27

+0

你有沒有試過設置前一個視圖的'nextKeyView'? – 2013-03-21 23:09:04

+0

只包含一個NSPopUpButton和一個NSTextField。嘗試將代碼和IB中的nextKeyView設置爲從一個到另一個,沒有任何效果。似乎只有包含的窗口能夠將NSPopUpButton設置爲firstResponder。奇怪的。 – uchuugaka 2013-03-21 23:15:18

回答

4

在你NSPopUpButton子類,儘量覆蓋canBecomeKeyView代替。

+0

真棒,有用。 – uchuugaka 2013-03-23 02:28:29