生成左键单击事件时如何生成右键单击事件?

时间:2011-01-17 10:18:06

标签: cocoa

我想在同一个对象上生成右键单击事件,生成左键单击事件。

我需要生成的对象是'上下文菜单'。正如我们所知,上下文菜单只在右键单击时打开。 所以我想通过左键单击生成右键单击事件来打开左键单击上下文菜单。

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

我已经通过在界面构建器中为我的按钮分配一个菜单然后继承NSButton以便在鼠标按下(左键单击)时显示菜单来完成此操作。

- (void)mouseDown:(NSEvent *)theEvent
{
    [self setState:NSOnState];
    [self highlight:YES];

    if ([self menu])
    {
      [NSMenu popUpContextMenu:[self menu] withEvent:theEvent forView:self];
    }

    [self setState:NSOffState];
    [self highlight:NO];
}

答案 1 :(得分:0)

Swift 3 / iOS 10版本的Scott回答:

override func mouseDown(with event: NSEvent)
{
    super.mouseDown(with: event)

    if let menu = self.menu
    {
        let locationInView = self.convert(event.locationInWindow, from: nil)
        menu.popUp(positioning: nil, at: locationInView, in: self)
    }
}