cocoa - 如何存储(和使用)当前鼠标位置?

标签 cocoa events mouse macos-carbon nsevent

存储当前鼠标位置(系统范围)然后(稍后)将鼠标放在该存储点的最佳方法是什么?

[NSEvent mouseLocation]获取位置,然后我可以使用 CGEventMouseMoved 移动鼠标,但它们各自使用不同的坐标系统(我相信 y=0 是 NSEvent 的顶部和 CGEvent 的底部)。

我担心捕获屏幕高度并使用它在两者之间进行转换的稳健性 - 或者这是最好的方法?

最佳答案

您可以使用CGEventTap获取鼠标事件而不是 NSEvent。然后,您可以在事件到来时选择翻转或不翻转。

(I believe y=0 is the top for NSEvent and the bottom for a CGEvent).

你的做法是错误的。 Quartz采用翻转,即y=0=top。 AppKit使用unflipped,即y=0=bottom。 (编辑:对于事件,即 Quartz 2D,绘图 API,使用未翻转的坐标,与 AppKit 相同。)

关于cocoa - 如何存储(和使用)当前鼠标位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2126622/

相关文章:

java - 程序未检测到鼠标点击

objective-c - 如何查看完整的 macOS os_log_info 消息而不截断行

cocoa - 了解 MainApp 是否由 HelperApp 启动

javascript - Ext JS 组合。过滤时保持扩展

javascript - 迭代数组事件和监听器 javascript

javascript - 普通 JavaScript 中的滚动动画仅适用于导航链接

c++ - Windows - SDL_PumpEvents 重置为系统光标

iphone - 在 Objective-C 中访问实例属性的最佳实践?

cocoa - 更改 NSCollectionView 的背景颜色

c# - Canvas 上的 MouseLeftButtonDown 需要太高的精度