3

我正在开发一个为每个显示器设置设置的项目。我希望我的应用程序支持删除并稍后重新添加显示,可能在两者之间使用另一个显示,当再次看到显示时应用每个显示的原始设置。

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

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

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

4

1 回答 1

5

-[NSScreen deviceDescription]有关获取的CGDirectDisplayID文档和有关文档的文档说CGDirectDisplayID

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

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

  • 小贩
  • 模型
  • 序列号
  • 在 I/O Kit 注册表中的位置

这听起来非常接近您正在寻找的内容。

于 2013-04-23T08:16:55.410 回答