Cocoa 在鼠标移动时监听鼠标移动事件,而不是光标
Cocoa listen for mouse move events when the mouse moves, not the cursor
我正在 Cocoa
开发一款游戏,我想在用户移动鼠标时旋转相机,而屏幕限制了相机的移动。我隐藏了鼠标光标,但我想在物理鼠标移动时收听,而不是在鼠标光标移动时收听。我听说过 IOKit
但这似乎太低了。如果有任何高级方法可以做到这一点,那么该怎么做?否则,我该如何使用 IOKit
.
隐藏光标时调用CGAssociateMouseAndMouseCursorPosition(FALSE)
。这将使鼠标移动不会移动光标。
当鼠标移动时,您将继续获得 NSEventTypeMouseMoved
、NSEventTypeLeftMouseDragged
、NSEventTypeRightMouseDragged
和 NSEventTypeOtherMouseDragged
事件(取决于移动期间是否按下按钮).因为光标没有移动,所以 locationInWindow
没有意义。当您取消光标与鼠标的关联时,它将继续报告最后的位置。但是,deltaX
和 deltaY
属性将指示鼠标移动的距离和方向。
我正在 Cocoa
开发一款游戏,我想在用户移动鼠标时旋转相机,而屏幕限制了相机的移动。我隐藏了鼠标光标,但我想在物理鼠标移动时收听,而不是在鼠标光标移动时收听。我听说过 IOKit
但这似乎太低了。如果有任何高级方法可以做到这一点,那么该怎么做?否则,我该如何使用 IOKit
.
隐藏光标时调用CGAssociateMouseAndMouseCursorPosition(FALSE)
。这将使鼠标移动不会移动光标。
当鼠标移动时,您将继续获得 NSEventTypeMouseMoved
、NSEventTypeLeftMouseDragged
、NSEventTypeRightMouseDragged
和 NSEventTypeOtherMouseDragged
事件(取决于移动期间是否按下按钮).因为光标没有移动,所以 locationInWindow
没有意义。当您取消光标与鼠标的关联时,它将继续报告最后的位置。但是,deltaX
和 deltaY
属性将指示鼠标移动的距离和方向。