我有多台显示器,并尝试使用Quarz Display API更改主显示,我的功能是
int setDisplayOrigin(CGDirectDisplayID display, int x, int y) {
CGDisplayConfigRef cfg;
auto ret = CGBeginDisplayConfiguration(&cfg);
if (ret != kCGErrorSuccess) return ret;
ret = CGConfigureDisplayOrigin(cfg, display, x, y);
if (ret != kCGErrorSuccess) return ret;
ret = CGCompleteDisplayConfiguration(cfg, kCGConfigureForAppOnly);
return ret;
}
要将特定的监视器设置为主监视器,我将x和y都设为0来调用此函数
setDisplayOrigin(directDisplayID, 0, 0)
macOS确实重新排列了显示,但是当我再次检查其边界时,相关的显示将不会以(0,0)为原点,并且每个返回值都成功(KCGErrorSuccess)
答案 0 :(得分:0)
感谢Ken的提示,重新定位当前的主显示器,然后将目标显示器的原点设置为(0,0),这是使其工作的方式。