首页 > 解决方案 > 移除所有物理显示器后在回调中看到“虚构显示器”

问题描述

当我移除所有物理显示器时,我CGDisplayReconfigurationCallBack看到一个虚构的显示器添加了标志设置为:

kCGDisplayMovedFlag |
kCGDisplaySetMainFlag |
kCGDisplaySetModeFlag |
kCGDisplayAddFlag |
kCGDisplayEnabledFlag |
kCGDisplayDesktopShapeChangedFlag

它有一个看似有效的CGDirectDisplayID,但调用CGDisplayCreateUUIDFromDisplayID返回 nil 并CGDisplayScreenSize返回宽度和高度为零。

这种假显示器有原因吗?也许系统需要一个显示器,即使它是虚构的。

有没有一种好方法可以测试 aCGDirectDisplayID以查看它是否是“虚构的”显示?零尺寸测试可能就足够了,但想知道是否有更认可的方法?

当我重新插入一个真实的显示器时,我看到了虚构的显示器帖子标志:

kCGDisplayRemoveFlag |
kCGDisplayDisabledFlag |
kCGDisplayDesktopShapeChangedFlag

我的应用程序必须跟踪显示,而我从没想过会找到虚构的显示。

标签: cocoadisplay

解决方案


推荐阅读