在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中检测鼠标左键是向上还是向下?
答案 0 :(得分:1)
您可能会注意到,keyDown:
跟踪键盘而非鼠标,因此您需要跟踪鼠标。然后:
抓住鼠标事件并跟踪mouseDown:
,在其中设置一个您在mouseUp:
重设的标记,然后在keyDown:
中测试此标记。
----- ---- EDIT
您也可以使用pressedMouseButtons:
的方法NSEvent
来轮询鼠标(无论如何轮询都不是一个好主意)。