Objective-C中的鼠标坐标?

fdh*_*fdh 3 macos events cocoa objective-c

获取鼠标坐标的这三种方法有什么区别:

  • [NSWindow convertBaseToScreen]
  • [NSEvent* locationInWindow]
  • [NSWindow mouseLocationOutsideOfEventStream]

我已经检查了文档,但描述太技术性了.有人可以用简单的术语解释这三者之间的区别吗?

Chu*_*uck 6

每个窗口和每个视图都有自己的坐标系,除非你已修改它,否则从左下角的(0,0)开始向上计数和向右计数.-[NSEvent locationInWindow]为您提供事件发生的位置窗口的坐标系(即,(0,0)是窗口的左下角).-[NSWindow convertBaseToScreen:]在窗口的坐标系中取一个坐标并将其转换为屏幕坐标,这样(0,0)现在表示整个屏幕的左下角.

-[NSWindow mouseLocationOutsideOfEventStream]给你(你发送给窗口的坐标系中),其中鼠标的位置,现在,无关的任何事件.这很少是有用的信息.