macOS检测KeyDown中鼠标按钮是否已关闭

时间:2016-11-30 11:05:19

标签: swift macos keydown mousedown nsevent

keyDown(with event: NSEvent)我可以通过以下代码知道OPT,CMD,CTRL,Shift是否被按下

override func keyDown(with event: NSEvent) {
    let shiftPressed = (event.modifierFlags.rawValue & NSEventModifierFlags.shift.rawValue != 0)
    let commandPressed = (event.modifierFlags.rawValue & NSEventModifierFlags.command.rawValue != 0)
    let optionPressed = (event.modifierFlags.rawValue & NSEventModifierFlags.option.rawValue != 0)
    let controlPressed = (event.modifierFlags.rawValue & NSEventModifierFlags.control.rawValue != 0)
    ...

如何在keyDown中检测鼠标左键是向上还是向下?

1 个答案:

答案 0 :(得分:1)

您可能会注意到,keyDown:跟踪键盘而非鼠标,因此您需要跟踪鼠标。然后:

抓住鼠标事件并跟踪mouseDown:,在其中设置一个您在mouseUp:重设的标记,然后在keyDown:中测试此标记。

----- ---- EDIT

您也可以使用pressedMouseButtons:的方法NSEvent来轮询鼠标(无论如何轮询都不是一个好主意)。