我正在使用NSView的自定义子类并通过keyDown/keyUp方法接收键盘事件,一切正常,除非按下"Cmd⌘"键,keyDown事件正常触发,但keyUp事件永远不会到来.
在我们的例子中,我们使用自己的箭头键向左/向右/向上/向下移动图像,如果用户在按住左/右按住"Cmd⌘"的同时,它将旋转图像.由于我们得到了keyDown事件,因此图像开始旋转,但它永远不会因为keyUp永远不会停止而停止.其他修饰符没有这个问题(例如,如果按住shift,ctrl或alt而按下另一个键,我们会按预期获得keyUp).一种选择是使用不同的修饰符,但保持它与PC版本一致会很好(Cmd用作Windows上使用Ctrl时的替代,使其与标准复制/粘贴命令保持一致等).
有谁知道为什么这样做?感觉就像一个bug,但可能只是奇怪的"正确行为",任何想法如何绕过它(除了使用替代修饰符或使用直接HID访问之类的东西).
谢谢.