我正在使用Cocoa
开发一个游戏,我想在用户移动鼠标时旋转相机,而屏幕限制了相机的移动。我隐藏了鼠标光标,但我想在物理鼠标移动时监听,而不是在鼠标光标移动时监听。我听说过 IOKit,但这似乎级别太低。如果有任何高级方法可以做到这一点,那么如何呢?另外,我如何使用 IOKit
。
最佳答案
当您隐藏光标时,调用CGAssociateMouseAndMouseCursorPosition(FALSE)
。这将使鼠标移动不会移动光标。
当鼠标移动时,您将继续获取 NSEventTypeMouseMoved
、NSEventTypeLeftMouseDragged
、NSEventTypeRightMouseDragged
和 NSEventTypeOtherMouseDragged
事件(取决于移动过程中是否按下按钮)。因为光标没有移动,所以 locationInWindow
将没有意义。当您取消光标与鼠标的关联时,它将继续报告最后的位置。但是,deltaX
和 deltaY
属性将指示鼠标移动的距离和方向。
关于Cocoa 在鼠标移动时监听鼠标移动事件,而不是光标移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43743738/