2011-01-11 141 views
2

我在Mac狀態欄中有一個NSMenu,裏面有一個NSMenuItems和一個自定義視圖。在自定義視圖中,我有一個NSTextField。我想在Spotlight菜單中打開菜單時將焦點設置在NSTextField上,以便用戶可以直接輸入。將焦點設置在NSMenu中的NSTextField上?

我已經嘗試了不少方法,包括:

[myTextField becomeFirstResponder]; 

[myTextField selectText: self]; 
    [[myTextField currentEditor] setSelectedRange:NSMakeRange([[myTextField stringValue] length], 0)]; 

但他們沒有工作。

感謝 亞歷克斯

回答

2

你在正確的軌道與第一個,但-becomeFirstResponder並不能使您的視圖中的第一個響應者 - 你必須調用-[NSWindow makeFirstResponder:]了點。

谷歌建議NSMenu實際上有一個附加窗口。您必須非常小心地使用它,但可以撥打makeFirstResponder:。這個怎麼

的更多信息,以利用在這裏:http://www.cocoabuilder.com/archive/cocoa/195835-set-focus-on-nsview-in-an-nsmenuitem.html

+0

感謝您的幫助。當你打開菜單時,即使我調用「[[myTextView window] makeFirstResponder:myTextField]」,但你的解決方案有一定的幫助,但是當我點擊myTextView內部時,它使myTextField處於焦點。 – 2011-01-13 10:53:21