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

标签 cocoa appkit

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

最佳答案

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

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

关于Cocoa 在鼠标移动时监听鼠标移动事件,而不是光标移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43743738/

相关文章:

objective-c - EXC_BAD_ACCESS [NSTableView _dataSourceValueForColumn :row:] in Mavericks only

objective-c - 从 Objective C 执行命令

cocoa - 如何使用 CALayers 保存状态?

objective-c - objective-c : How to know picture's inspector information

cocoa - 命令行工具与 Cocoa 应用程序交互

cocoa - 没有 Info.plist 的 OS X AppKit 可执行文件

swift - 绘制 NSTextField 设置内容 NSRect

cocoa - 将菜单项绑定(bind)到第一响应者的属性

iphone - 使用 NSXMLParser 解析 XML 时出现问题

cocoa - 当 mainWindow 改变时重绘 NSView