Определение позиций экрана в Objective-C (NSScreen) - PullRequest
5 голосов
/ 13 марта 2010

Используя [экраны NSScreen], я могу подключить все экраны к компьютеру и их размеры, однако я пытаюсь выяснить их положение относительно друг друга (как в расположении в настройках отображения). Есть ли способ сделать это? Я просмотрел ссылки на классы на сайте разработчиков Apple и ничего не нашел. Спасибо.

Ответы [ 2 ]

5 голосов
/ 26 апреля 2011

Для каждого из экранов, возвращаемых [NSScreen screens], вы можете позвонить:

[screen frame]

, чтобы получить NSRect, содержащий size и offset каждого экрана. Главный экран (то есть экран с строкой меню) будет иметь смещение (0, 0).

Это должно быть намного проще, чем обрабатывать -deviceDescription.

4 голосов
/ 27 июля 2010

Aha! Я просматривал API и узнал, как это сделать. Если вы получите -deviceDescription от NSScreen, вы можете получить CGDirectDisplayID. Оттуда вы можете использовать Quartz Display Services от ApplicationServices, чтобы получить CGDisplayBounds, который показывает размер дисплея и положение относительно всех экранов.

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