你能在mouseDown事件中检测到ctrl-click(上下文菜单)请求吗?

Ala*_*ley 5 macos cocoa objective-c

在我的跨平台架构中,我想在鼠标单击事件期间单击上下文菜单(右键单击).在Cocoa中,您可以在mouseDown事件期间检测到用户在触摸板上按住Ctrl键单击或双击(右键单击等效项)吗?我知道NSView的menuForEvent,但不希望在这里处理它.

Wil*_*ley 15

一般来说,-rightMouseDown:应该自动调用,但是我已经看到了不是这样的情况 - 这些可能会在Leopard中修补.

但是现在,在-mouseDown:我使用以下代码检查控制键是否关闭:

- (void)mouseDown:(NSEvent *)event;
{
    if (event.modifierFlags & NSControlKeyMask)
        return [self rightMouseDown:event];

...
}
Run Code Online (Sandbox Code Playgroud)

-会


Ben*_*ieb 13

如果您正在使用AppKit,并且想要在视图中检测到右键单击,则应该覆盖-[NSResponder rightMouseDown:].