我正在使用一个自定义的NSView子类,并通过keyDown/keyUp方法接收键盘事件,一切都正常工作,除了按下"Cmd ⌘"键时,keyDown事件会像往常一样触发,但是keyUp事件却从未到来。
在我们的案例中,我们单独使用方向键将图像向左/右/上/下移动,如果用户在按下左/右键时按住"Cmd ⌘",它将旋转图像。由于我们获得了keyDown事件,图像开始旋转,但它永远不会停止,因为keyUp从未到来。其他修饰符没有这个问题(例如,如果同时按住shift、ctrl或alt键,而另一个键被按下,则如预期那样得到keyUp)。一种选择是使用其他修饰键,但保持与PC版本一致(在Windows上使用Ctrl时使用Cmd作为替代品,使其与标准复制/粘贴命令等保持一致)会更好。
有人知道为什么会出现这种情况吗?感觉像是一个bug,但可能只是奇怪的“正确行为”,有什么解决办法吗(除了使用其他修饰键或使用直接的HID访问之类的)?
谢谢。