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
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 mails | Author | Date |
|---|---|---|
| Hendrik Holtmann | Jan 4, 15:20 | |
| Peter Ammon | Jan 4, 21:30 | |
| Pierre Bernard | Feb 6, 00:43 | |
| Pierre Bernard | Feb 6, 09:37 | |
| Ron Fleckner | Feb 6, 11:33 | |
| Pierre Bernard | Feb 6, 11:38 | |
| Lieven Dekeyser | Feb 15, 13:55 |






Cocoa mail archive

