Однозначная идентификация NSScreen

Я работаю над проектом, в котором есть настройки для каждого дисплея. Я хочу, чтобы мое приложение поддерживало удаление дисплея, а затем его повторное добавление, возможно, с другим дисплеем, используемым между ними, с исходными настройками для каждого дисплея, применяемыми, когда дисплей снова отображается.

Насколько я могу судить, с помощью NSScreen невозможно однозначно идентифицировать его вне контекста текущей конфигурации дисплея. Я не могу просто использовать размеры / свойства экрана, поскольку у пользователя может быть несколько дисплеев одной и той же модели в разных местах; насколько я могу судить, эта проблема относится ко всем постоянным свойствам экрана.

Есть ли известный способ сделать это?

Спасибо за ваше время. Любая помощь приветствуется.


person Alex Broadwin    schedule 23.04.2013    source источник


Ответы (1)


В документации к -[NSScreen deviceDescription] говорится о получении CGDirectDisplayID, а в документации к CGDirectDisplayID говорится:

При подключении монитора Quartz присваивает уникальный идентификатор дисплея (ID). Идентификатор отображения может сохраняться в процессе и при перезагрузке системы и обычно остается постоянным, пока не изменяются определенные параметры отображения.

При назначении идентификатора дисплея Quartz учитывает следующие параметры:

  • Продавец
  • Модель
  • Серийный номер
  • Положение в реестре I / O Kit

Это звучит довольно близко к тому, что вы ищете.

person ashcatch    schedule 23.04.2013