2

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

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

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

4

2 回答 2

1

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

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

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

于 2010-01-24T16:34:18.563 回答
0

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

于 2010-01-24T16:23:47.540 回答