如何存储(和使用)当前鼠标位置?
-
22-09-2019 - |
题
存储当前鼠标位置(系统范围)然后(稍后)将鼠标放在该存储点的最佳方法是什么?
[NSEvent mouseLocation]
获取位置,然后我可以用 CGEventMouseMoved
, ,但它们各自使用不同的坐标系统(我相信 y=0 是 NSEvent 的顶部和 CGEvent 的底部)。
我担心捕获屏幕高度并使用它在两者之间进行转换的稳健性 - 或者这是最好的方法?
解决方案
是的,使用主屏幕的高度是翻转屏幕坐标的标准方法。
其他提示
你可以使用 CG事件点击 获取鼠标事件而不是 NSEvent。然后,您可以在活动到来时选择翻转或不翻转。
(我相信 y=0 是 NSEvent 的顶部和 CGEvent 的底部)。
你的做法是错误的。Quartz采用翻转,即y=0=top。AppKit使用unflipped,即y=0=bottom。(编辑:对于事件来说,就是这样。Quartz 2D(绘图 API)使用未翻转的坐标,与 AppKit 相同。)
不隶属于 StackOverflow