FROM : Luc Vandal
DATE : Fri Apr 08 21:35:59 2005
Hi,
I managed to get it to work by changing NSPostASAP to NSPostNow (hoping
that this is ok).
One last thing, how can I get information about the control from
NSResponder?
Thanks!
Luc
On 8-Apr-05, at 1:33 PM, Shawn Erickson wrote:
>
> On Apr 8, 2005, at 9:46 AM, Luc Vandal wrote:
>
>>
>> On 8-Apr-05, at 12:43 PM, Shawn Erickson wrote:
>>
>>>
>>> On Apr 8, 2005, at 9:29 AM, Luc Vandal wrote:
>>>
>>>> Basically there's a text field, check boxes, radio buttons and
>>>> buttons. Like I said, makeFirstResponder is called every time I tab
>>>> through the controls but the notification is only received once,
>>>> when the window has closed.
>>>
>>> How did you subscribe to the notification? Did you try using the
>>> delegate pathway?
>>>
>>> >From the code I see I don't see why you would be getting the
>>> behavior you described.
>>>
>>> Are you running any type of run loop of your own while this window
>>> is up?
>>> Is it a modal window of some type?
>>>
>>> -Shawn
>>
>> here's how I register:
>>
>> NSNotificationCenter* center = [NSNotificationCenter defaultCenter];
>>
>> [center addObserver:self
>> selector:@selector(windowDidMakeFirstResponder:)
>> name:@"WindowDidMakeFirstResponder" object:nil];
>
> Is the window you are working with a modal window... application
> modal, document modal (sheet), etc.?
>
> My guess would be that you either have a sub-runloop in place or the
> main runloop is in a particular mode while the window is being
> displayed that is preventing delivery of the notification.
>
> As a test you could modify the NSWindow subclass to change the modes
> that the event should be delivered under.
>
> Replace...
>
> [[NSNotificationQueue defaultQueue] enqueueNotification:notif
> postingStyle:NSPostASAP];
>
> ...with something like the following (consider adding
> NSEventTrackingRunLoopMode as well if needed)...
>
> NSNotificationQueue dq = [NSNotificationQueue defaultQueue]
> [dq enqueueNotification:notif
> postingStyle:NSPostASAP
> coalesceMask:NSNotificationCoalescingOnName |
> NSNotificationCoalescingOnSender
> forModes:[NSArray
> arrayWithObjects:NSDefaultRunLoopMode, NSModalPanelRunLoopMode, nil]];
>
> -Shawn
DATE : Fri Apr 08 21:35:59 2005
Hi,
I managed to get it to work by changing NSPostASAP to NSPostNow (hoping
that this is ok).
One last thing, how can I get information about the control from
NSResponder?
Thanks!
Luc
On 8-Apr-05, at 1:33 PM, Shawn Erickson wrote:
>
> On Apr 8, 2005, at 9:46 AM, Luc Vandal wrote:
>
>>
>> On 8-Apr-05, at 12:43 PM, Shawn Erickson wrote:
>>
>>>
>>> On Apr 8, 2005, at 9:29 AM, Luc Vandal wrote:
>>>
>>>> Basically there's a text field, check boxes, radio buttons and
>>>> buttons. Like I said, makeFirstResponder is called every time I tab
>>>> through the controls but the notification is only received once,
>>>> when the window has closed.
>>>
>>> How did you subscribe to the notification? Did you try using the
>>> delegate pathway?
>>>
>>> >From the code I see I don't see why you would be getting the
>>> behavior you described.
>>>
>>> Are you running any type of run loop of your own while this window
>>> is up?
>>> Is it a modal window of some type?
>>>
>>> -Shawn
>>
>> here's how I register:
>>
>> NSNotificationCenter* center = [NSNotificationCenter defaultCenter];
>>
>> [center addObserver:self
>> selector:@selector(windowDidMakeFirstResponder:)
>> name:@"WindowDidMakeFirstResponder" object:nil];
>
> Is the window you are working with a modal window... application
> modal, document modal (sheet), etc.?
>
> My guess would be that you either have a sub-runloop in place or the
> main runloop is in a particular mode while the window is being
> displayed that is preventing delivery of the notification.
>
> As a test you could modify the NSWindow subclass to change the modes
> that the event should be delivered under.
>
> Replace...
>
> [[NSNotificationQueue defaultQueue] enqueueNotification:notif
> postingStyle:NSPostASAP];
>
> ...with something like the following (consider adding
> NSEventTrackingRunLoopMode as well if needed)...
>
> NSNotificationQueue dq = [NSNotificationQueue defaultQueue]
> [dq enqueueNotification:notif
> postingStyle:NSPostASAP
> coalesceMask:NSNotificationCoalescingOnName |
> NSNotificationCoalescingOnSender
> forModes:[NSArray
> arrayWithObjects:NSDefaultRunLoopMode, NSModalPanelRunLoopMode, nil]];
>
> -Shawn






Cocoa mail archive

