In my cross-platform architecture, I would like to act on a context menu click (right button click) during a mouse click event. In Cocoa, can you detect that the user either Ctrl-Clicked or double-tapped on touchpad (right-click equivalent) DURING the mouseDown event? I am aware of NSView's menuForEvent but do not wish to handle it here.
+3
A:
If you're using AppKit, and you want to detect a right-click in your view, you should override -[NSResponder rightMouseDown:]
.
Ben Gottlieb
2008-10-22 22:46:19
Duh. I don't know how I missed that event. Thanks.
AlanKley
2008-10-22 22:49:31
+2
A:
In general, -rightMouseDown: should get called automatically, but I've seen situations where it isn't -- these may be patched in Leopard.
But right now, in -mouseDown: I check whether the control key is down, using this code:
- (void)mouseDown:(NSEvent *)event;
{
if (event.modifierFlags & NSControlKeyMask)
return [self rightMouseDown:event];
...
}
-Wil
Wil Shipley
2008-10-25 22:55:51