在'addLocalMonitorForEventsMatchingMask'中一起管理NSEventMask

时间:2015-12-21 11:24:26

标签: swift cocoa nsevent

我有以下代码用于监听视图外的鼠标事件(NSView的子类)。这很好用,但我无法弄清楚如何将NSEventMasks一起管道。我基本上希望在NSEventMask.LeftMouseDownMaskNSEventMask.RightMouseDownMaskNSEventMask.OtherMouseDownMask上触发相同的事件监听器。

有没有人知道如何将它们连接在一起,或者甚至可以在Swift中使用它?

工作代码

localMouseEventListener = NSEvent.addLocalMonitorForEventsMatchingMask(NSEventMask.LeftMouseDownMask) { (event: NSEvent) -> NSEvent? in

        // Event handling...

        return event
    }

1 个答案:

答案 0 :(得分:5)

This answer可能会对您有所帮助。

简而言之,您现在可以使用数组,因此这似乎让编译器感到高兴:

localMouseEventListener = NSEvent.addLocalMonitorForEventsMatchingMask([.LeftMouseDownMask, .RightMouseDownMask, .OtherMouseDownMask]) { (event: NSEvent) -> NSEvent? in

    // Event handling...

    return event
}