这三种获取鼠标坐标的方法有什么区别:
[NSWindow convertBaseToScreen]
[NSEvent* locationInWindow]
[NSWindow mouseLocationOutsideOfEventStream]
我已经检查了文档,但描述太技术性了。有人可以用简单的术语解释这三者之间的区别吗?
答案 0 :(得分:6)
每个窗口和每个视图都有自己的坐标系,除非你已经修改过它,否则从左下角的(0,0)开始向上计数和向右计数。 -[NSEvent locationInWindow]
为您提供事件发生的位置窗口的坐标系(即(0,0)是窗口的左下角)。 -[NSWindow convertBaseToScreen:]
在窗口的坐标系中获取一个坐标并将其转换为屏幕坐标,因此(0,0)现在表示整个屏幕的左下角。
-[NSWindow mouseLocationOutsideOfEventStream]
为您提供鼠标现在的位置(在您发送给它的窗口的坐标系中),与任何事件无关。这很少是有用的信息。