我正在开发一个项目,其中包含每个显示的设置。我希望我的应用程序支持显示被删除并稍后重新添加,可能还有其他显示,其中显示的是每次显示的原始设置。
据我所知,通过NSScreen无法在当前显示配置的上下文之外唯一地识别出一个。我不能只使用屏幕尺寸/属性,因为用户可以在不同位置具有相同型号的多个显示器;就我所知,这个问题适用于屏幕的所有持久属性。
有没有一种好的,已知的方法来做到这一点?
感谢您的时间。非常感谢任何帮助。
答案 0 :(得分:4)
-[NSScreen deviceDescription]
关于获取CGDirectDisplayID
的文档以及有关CGDirectDisplayID
的文档说明:
连接显示器时,Quartz会分配一个唯一的显示标识符(ID)。显示ID可以在进程和系统重新引导之间保持不变,并且只要某些显示参数不发生变化,通常就会保持不变。
分配显示ID时,Quartz会考虑以下参数:
- 供应商
- 模型
- 序列号
- 在I / O Kit注册表中的位置
这听起来非常接近你所寻找的。 p>