cocoa - 唯一标识 NSScreen

标签 cocoa unique identifier

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

据我所知,没有办法通过 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/

相关文章:

python - Python中的Unicode标识符?

objective-c - NSPopupButton 中带有绑定(bind)的分隔符项

sql - 如何在 SQL (Oracle) 中执行跨列唯一约束

html - Cocoa WebView、WebKit - 防止 I-Beam 光标显示在文本上?

java - 如何在 Java 中根据 2 个对象属性对唯一列表进行排序

mysql - Django unique_together 创建没有 UNIQUE 约束的索引

c++ - 在 Windows 上找不到 valloc 标识符

java - 我的java代码有什么问题? (解析错误)

macos - 如何才能保留为 AddressBook 中的自定义属性设置的值?

cocoa - TWUI : replace view with effect