rightMouseDown not working as documented?
rightMouseDown not working as documented?
- Subject: rightMouseDown not working as documented?
- From: Murat Konar <email@hidden>
- Date: Fri, 22 Jan 2010 12:56:28 -0800
I've run into a surprising behavior today in Leopard 10.5.8 (haven't
had the opportunity to test it on Snow Leopard yet).
I have one view of class "RedView" nested inside another view
"OrangeView". Both views are subclasses of NSView.
This is the inner view's implementation of rightMouseDown:
- (void) rightMouseDown:(NSEvent*)event
{
NSBeep();
NSLog(@"right mouse down in view %@, nextresponder %@", self,
self.nextResponder);
[super rightMouseDown:event];
}
This is the outer view's implementation:
- (void) rightMouseDown:(NSEvent*)event
{
NSBeep();
NSLog(@"right mouse down in view %@", self);
}
Note that the inner view's implementation of rightMouseDown: calls
through to the default implementation.
I expected that a right click in the inner view would be logged by the
inner view, and this is the case. However, I also expected the outer
view to log the right click as well, since the inner view's
implementation calls through to the default implementation, and
(according to the docs) the default implementation calls the next
responder's implementation, and the next responder is the outer view.
But this is *not* the case.
To wit, here is the output when I right click three times in the outer
view, then three times in the inner view:
2010-01-22 12:39:56.061 RightMouseTest[26543:813] right mouse down in
view <OuterView: 0x1375d0>
2010-01-22 12:39:57.151 RightMouseTest[26543:813] right mouse down in
view <OuterView: 0x1375d0>
2010-01-22 12:39:57.995 RightMouseTest[26543:813] right mouse down in
view <OuterView: 0x1375d0>
2010-01-22 12:39:59.671 RightMouseTest[26543:813] right mouse down in
view <InnerView: 0x1309c0>, nextresponder <OuterView: 0x1375d0>
2010-01-22 12:40:00.841 RightMouseTest[26543:813] right mouse down in
view <InnerView: 0x1309c0>, nextresponder <OuterView: 0x1375d0>
2010-01-22 12:40:01.606 RightMouseTest[26543:813] right mouse down in
view <InnerView: 0x1309c0>, nextresponder <OuterView: 0x1375d0>
As is plain to see, even though the inner view calls through to the
defualt implementation, which in turn should pass control to the
nextResponder, this is not happening.
For what it's worth, I also implemented otherMouseButton: in a similar
way and it works as expected.
Is this a bug or what? Any insight appreciated, sample project at:
<http://codeshare.muratnkonar.com/RightMouseTest.zip>
_murat
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden