2013-04-23 160 views
3

我正在爲每個顯示設置一個項目。我希望我的應用程序支持將顯示器移除並稍後重新添加,可能還會使用另一個顯示器,並在再次顯示顯示器時應用每個顯示器的原始設置。唯一標識一個NSScreen

據我所知,通過NSScreen無法唯一地識別當前顯示配置上下文之外的一個方法。我不能只使用屏幕尺寸/屬性,因爲用戶可能在不同位置有多個相同型號的顯示器;就我所知,這個問題適用於屏幕的所有持久性屬性。

有沒有一個很好的,已知的方式來做到這一點?

謝謝你的時間。任何幫助是極大的讚賞。

回答

4

至約獲取CGDirectDisplayID和關於CGDirectDisplayID文檔-[NSScreen deviceDescription]會談文檔說:

當顯示器安裝,石英分配一個唯一的顯示標識符(ID)。顯示ID可以在進程和系統重新啓動時保持不變,並且只要某些顯示參數不更改,顯示ID通常會保持不變。

當分配顯示ID,石英考慮以下參數:

  • 賣方
  • 模型
  • 序號
  • 位置在I/O Kit的註冊表

這聽起來非常接近你正在尋找的東西。