存储当前鼠标位置(系统范围)然后(稍后)将鼠标放在该存储点的最佳方法是什么?
[NSEvent mouseLocation]
得到我的位置,我可以用 a 移动鼠标CGEventMouseMoved
,但它们每个都使用不同的坐标系统(我相信 y=0 是 NSEvent 的顶部和 CGEvent 的底部)。
我担心捕获屏幕高度并使用它在两者之间转换的稳健性 - 或者这是最好的方法?
存储当前鼠标位置(系统范围)然后(稍后)将鼠标放在该存储点的最佳方法是什么?
[NSEvent mouseLocation]
得到我的位置,我可以用 a 移动鼠标CGEventMouseMoved
,但它们每个都使用不同的坐标系统(我相信 y=0 是 NSEvent 的顶部和 CGEvent 的底部)。
我担心捕获屏幕高度并使用它在两者之间转换的稳健性 - 或者这是最好的方法?
您可以使用CGEventTap 而不是NSEvent来获取鼠标事件。然后,您可以在事件到达时选择翻转或未翻转。
(我相信 y=0 是 NSEvent 的顶部和 CGEvent 的底部)。
你有错误的方式。Quartz使用flipped,即y=0=top。AppKit 使用 unflipped,即 y=0=bottom。(编辑:对于事件,即绘图 API Quartz 2D 使用未翻转的坐标,与 AppKit 相同。)
是的,使用主屏幕的高度是翻转屏幕坐标的标准方式。