2013-04-23 101 views
3

我正在为每个显示设置一个项目。我希望我的应用程序支持将显示器移除并稍后重新添加,可能还会使用另一个显示器,并在再次显示显示器时应用每个显示器的原始设置。唯一标识一个NSScreen

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

有没有一个很好的,已知的方式来做到这一点?

谢谢你的时间。任何帮助是极大的赞赏。

回答

4

至约获取CGDirectDisplayID和关于CGDirectDisplayID文档-[NSScreen deviceDescription]会谈文档说:

当显示器安装,石英分配一个唯一的显示标识符(ID)。显示ID可以在进程和系统重新启动时保持不变,并且只要某些显示参数不更改,显示ID通常会保持不变。

当分配显示ID,石英考虑以下参数:

  • 卖方
  • 模型
  • 序号
  • 位置在I/O Kit的注册表

这听起来非常接近你正在寻找的东西。