2016-01-08 12 views
1

有一個NSWindow使用NSViews'構建'。我對這些NSView中的一個感興趣。這個視圖有NSButtons和一個NSTextfield。第一響應者在OSX10.7上設置正確,但不在OSX中10.10

在OSX 10.7上,只要應用程序打開,NSTextfield就會獲得焦點,這正是我想要的。在10.11,其中一個NSButton獲得焦點(B1),而不是NSTextfield。 我該如何解決這個問題?

的一個NSView我感興趣的是這個樣子的:

B1 B2 B3 NSTextField B4 V1 V2 
1 2 3 4   5 6 7 

第一行 「表演」 的NSButtons(BX,X = 1 ... N),在和的NSTextField其他幾個視圖(VX) 。
第二行「顯示」每個元素的標記值。

到目前爲止我試過了什麼?
1.用NSTextField切換B1的標籤值。
2.按照需要的順序連接每個元件的出口nextKeyView
3. NSView還有一個nextKeyView插座。我將它連接到NSTextfield。

沒有工作。

+0

按鈕甚至不應該正常獲得焦點。你有沒有試過在10.11上按Ctrl + F7? – hamstergene

+0

他們這樣做。在控件之間導航(按Tab)非常有用。 Ctrl + f7在我的應用程序中不做任何事情。 – subzero

+0

然後按Ctrl + Fn + F7。我的意思是,按鈕真的不能在正常的OS X界面中得到關注。 – hamstergene

回答

0

使按鈕變得焦點是全局系統設置的問題,而不是程序中的問題。系統偏好設置/鍵盤/快捷方式/鍵盤/「更改標籤移動焦點的方式」(默認情況下爲Ctrl + F7)中定義了更改它的快捷方式。請注意,根據鍵盤配置的不同,您可能需要按Ctrl + Fn + F7。

無論如何,如果你需要確保窗口彈出一個特定的控制集中,它由NSWindow的initialFirstResponder財產控制。標籤查看項目也具有該屬性。如果窗口已經可見,請致電makeFirstResponder:方法明確移動焦點 - 但要注意,它可能會失敗,例如由於輸入驗證。

相關問題