Координаты мыши в Objective-C? - PullRequest
       2

Координаты мыши в Objective-C?

3 голосов
/ 03 февраля 2012

В чем разница между этими тремя методами получения координат мыши:

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

Я уже проверил документацию, но описания были слишком техническими.Может ли кто-нибудь объяснить разницу между этими тремя словами проще?

1 Ответ

6 голосов
/ 03 февраля 2012

Каждое окно и каждое представление имеют свою собственную систему координат, которая (если вы не изменили ее) начинается с (0, 0) в левом нижнем углу и считается вверх и вправо. -[NSEvent locationInWindow] дает вам место, где произошло событие, в системе координат окна (то есть, (0, 0) - это нижний левый угол окна). -[NSWindow convertBaseToScreen:] берет координату в системе координат окна и преобразует ее в экранные координаты, так что (0, 0) теперь означает левый нижний угол всего экрана.

-[NSWindow mouseLocationOutsideOfEventStream] дает вам местоположение (в системе координат окна, в которое вы его отправляете), где мышь прямо сейчас , не связанная с каким-либо событием. Это редко полезная информация.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...