Skip navigation.
 
mlRe: Set focus on NSView in an NSMenuItem
FROM : Pierre Bernard
DATE : Wed Feb 06 00:43:18 2008

Hi Peter!
Hi Hendrik!

I have almost the same setup as Hendrik: I use a NSSearchField in a 
menu. When the menu is opened I want the focus to go to the search 
field.

At first sight, the solution suggested by Peter appears to work fine. 
But something goes wrong. My search field misbehaves when I do this.

To be exact, the window's text editor does not respect the properties 
of my search field. E.g. if I hit return while editing, I get a 
newline in my search field. I however expect the search field's action 
to be called.

So I figured, I could delay setting the focus using 
performSelector:afterDelay: or using a NSTimer. I wouldn't know if 
this could alleviate the above described problem. The thing is: in 
both cases my selector only gets called after the menu is dismissed.

Hendrik, did you get this to work as expected?
Peter, could it be that the text editor is called upon too early?

Best,
Pierre

On 4 Jan 2008, at 21:30, Peter Ammon wrote:

>
> On Jan 4, 2008, at 6:20 AM, Hendrik Holtmann wrote:
>

>> Hi everyone,
>>
>> I got another question regarding the new setView method in Leopard.
>> Let's assume I set the view for an NSMenuItem to myView. myView 
>> contains an NSTextField. Now when I open the NSMenu I want to set 
>> the focus on this textfield, so the user can directly enter some 
>> text without having to click on the control first (like it works in 
>> the spotlight menu). How can I achieve that? I know how to call 
>> keyOrderAndFront and setFirstRespinder for NSWindows but how can I 
>> do this with an NSMenu. Setting the firstresponder for myView to 
>> the NSTextField does not help unfortunately.

>
> Probably the easiest approach would be to override 
> viewDidMoveToWindow on the view that will be in the menu, and from 
> within it call [[self window] makeFirstResponder:self];. 
> makeFirstResponder is one of a very few methods that is safe to call 
> on the menu window.
>
> -Peter
>
> _______________________________________________
>
> Cocoa-dev mailing list (<email_removed>)
>
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/cocoa-dev/<email_removed>
>
> This email sent to <email_removed>


---
Pierre Bernard
http://www.bernard-web.com/pierre
http://www.houdah.com

Related mailsAuthorDate
mlSet focus on NSView in an NSMenuItem Hendrik Holtmann Jan 4, 15:20
mlRe: Set focus on NSView in an NSMenuItem Peter Ammon Jan 4, 21:30
mlRe: Set focus on NSView in an NSMenuItem Pierre Bernard Feb 6, 00:43
mlRe: Set focus on NSView in an NSMenuItem Pierre Bernard Feb 6, 09:37
mlRe: Set focus on NSView in an NSMenuItem Ron Fleckner Feb 6, 11:33
mlRe: Set focus on NSView in an NSMenuItem Pierre Bernard Feb 6, 11:38
mlRe: Set focus on NSView in an NSMenuItem Lieven Dekeyser Feb 15, 13:55