Cocoa 在鼠标移动时监听鼠标移动事件,而不是光标

Cocoa listen for mouse move events when the mouse moves, not the cursor

我正在 Cocoa 开发一款游戏,我想在用户移动鼠标时旋转相机,而屏幕限制了相机的移动。我隐藏了鼠标光标,但我想在物理鼠标移动时收听,而不是在鼠标光标移动时收听。我听说过 IOKit 但这似乎太低了。如果有任何高级方法可以做到这一点,那么该怎么做?否则,我该如何使用 IOKit.

隐藏光标时调用CGAssociateMouseAndMouseCursorPosition(FALSE)。这将使鼠标移动不会移动光标。

当鼠标移动时,您将继续获得 NSEventTypeMouseMovedNSEventTypeLeftMouseDraggedNSEventTypeRightMouseDraggedNSEventTypeOtherMouseDragged 事件(取决于移动期间是否按下按钮).因为光标没有移动,所以 locationInWindow 没有意义。当您取消光标与鼠标的关联时,它将继续报告最后的位置。但是,deltaXdeltaY 属性将指示鼠标移动的距离和方向。