Skip navigation.
 
mlRe: Set focus on NSView in an NSMenuItem
FROM : Pierre Bernard
DATE : Wed Feb 06 09:37:59 2008

Hi!

OK, I figured out how to add a timer. Unfortunately, that does not 
help with my problem of the misbehaving field editor.

- (void)viewDidMoveToWindow
{
   [super viewDidMoveToWindow];
   
   self.focusTimer = [NSTimer timerWithTimeInterval:1.0
                                             target:self
                                           selector:@selector(focusOnSearchField)
                                           userInfo:nil
                                            repeats:NO];

   [[NSRunLoop currentRunLoop] addTimer:self.focusTimer 
forMode:NSEventTrackingRunLoopMode];
}

- (void)focusOnSearchField
{
   [[self window] makeFirstResponder:searchField];
   
   [self.focusTimer invalidate];
   self.focusTimer = nil;
}

Pierre


On 6 Feb 2008, at 00:43, Pierre Bernard wrote:

> 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
>
>
>


- - -
Houdah Software s. à r. l.
http://www.houdah.com

HoudahGeo: One-stop photo geocoding
HoudahSpot: Powerful Spotlight frontend



---
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