2011-01-11 2 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:]를 호출해야합니다.

Google은 실제로 NSMenu에 첨부 된 창이 있다고 제안합니다. 매우 신중하게 사용해야하지만, makeFirstResponder:으로 전화하는 것이 안전합니다. 이 방법에 대한

자세한 정보는 여기를 활용하기 : 도움을 http://www.cocoabuilder.com/archive/cocoa/195835-set-focus-on-nsview-in-an-nsmenuitem.html

+0

감사합니다. 귀하의 솔루션을 부분적으로 도움이 부분적으로 도움이, 메뉴를 열 때 여전히 "[[myTextView 창] makeFirstResponder : myTextField"호출하는 경우에도 작동하지 않습니다,하지만 무슨 일이 일어날 것이다 myTextView 내부에 클릭하면 포커스가 myTextField . –