我正在开发一个项目,其中每个显示器都有设置。我希望我的应用程序支持删除显示器并稍后重新添加显示器,可能在其间使用另一个显示器,并在再次看到显示器时应用每个显示器的原始设置。
据我所知,没有办法通过 NSScreen 来唯一标识当前显示配置上下文之外的一个。我不能只使用屏幕尺寸/属性,因为用户可以在不同位置拥有同一型号的多个显示器;据我所知,这个问题适用于屏幕的所有持久属性。
有没有一种好的、已知的方法可以做到这一点?
感谢您的宝贵时间。非常感谢任何帮助。
最佳答案
-[NSScreen deviceDescription]
的文档讨论了获取 CGDirectDisplayID
的内容,有关 CGDirectDisplayID
的文档说:
When a monitor is attached, Quartz assigns a unique display identifier (ID). A display ID can persist across processes and system reboot, and typically remains constant as long as certain display parameters do not change.
When assigning a display ID, Quartz considers the following parameters:
- Vendor
- Model
- Serial number
- Position in the I/O Kit registry
这听起来非常接近您正在寻找的内容。
关于cocoa - 唯一标识 NSScreen,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16160912/