在我的跨平台架构中,我想在鼠标单击事件期间单击上下文菜单(右键单击)。在Cocoa中,您可以在mouseDown事件期间检测到用户在触摸板上按住Ctrl键单击或双击(右键单击等效项)吗?我知道NSView的menuForEvent,但不希望在这里处理它。
答案 0 :(得分:15)
一般情况下,-rightMouseDown:应该自动调用,但我已经看到了不是这样的情况 - 这些可以在Leopard中修补。
但是现在,在-mouseDown:我使用以下代码检查控制键是否关闭:
- (void)mouseDown:(NSEvent *)event;
{
if (event.modifierFlags & NSControlKeyMask)
return [self rightMouseDown:event];
...
}
-Wil
答案 1 :(得分:13)
如果您正在使用AppKit,并且想要在视图中检测到右键单击,则应覆盖-[NSResponder rightMouseDown:]
。
答案 2 :(得分:1)
Swift版本:
override func mouseDown(theEvent: NSEvent) {
if theEvent.modifierFlags.contains(.ControlKeyMask) {
return rightMouseDown(theEvent)
}
super.mouseDown(theEvent)
}