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

时间:2010-01-24 09:57:27

标签: cocoa events mouse macos-carbon nsevent

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

[NSEvent mouseLocation]让我找到了位置,我可以用CGEventMouseMoved移动鼠标,但他们每个都使用不同的坐标系统(我相信y = 0是NSEvent和CGEvent的底部。)

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

2 个答案:

答案 0 :(得分:1)

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

  

(我相信y = 0是NSEvent的顶部,也是CGEvent的底部)。

你有错误的方法。石英使用翻转,即y = 0 =顶部。 AppKit使用unflipped,即y = 0 = bottom。 (编辑:对于事件,即Quartz 2D,绘图API,使用未折叠的坐标,与AppKit相同。)

答案 1 :(得分:0)

是的,使用主屏幕的高度是翻转屏幕坐标的标准方式。