独特地识别NSScreen

时间:2013-04-23 04:22:53

标签: cocoa unique identifier

我正在开发一个项目,其中包含每个显示的设置。我希望我的应用程序支持显示被删除并稍后重新添加,可能还有其他显示,其中显示的是每次显示的原始设置。

据我所知,通过NSScreen无法在当前显示配置的上下文之外唯一地识别出一个。我不能只使用屏幕尺寸/属性,因为用户可以在不同位置具有相同型号的多个显示器;就我所知,这个问题适用于屏幕的所有持久属性。

有没有一种好的,已知的方法来做到这一点?

感谢您的时间。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:4)

-[NSScreen deviceDescription]关于获取CGDirectDisplayID的文档以及有关CGDirectDisplayID的文档说明:

  

连接显示器时,Quartz会分配一个唯一的显示标识符(ID)。显示ID可以在进程和系统重新引导之间保持不变,并且只要某些显示参数不发生变化,通常就会保持不变。

     

分配显示ID时,Quartz会考虑以下参数:

     
      
  • 供应商
  •   
  • 模型
  •   
  • 序列号
  •   
  • 在I / O Kit注册表中的位置
  •   

这听起来非常接近你所寻找的。