gpt4 book ai didi

macos - 有没有办法知道另一个应用程序是否更改了 Cocoa 中的显示分辨率?

转载 作者:行者123 更新时间:2023-12-03 16:11:58 25 4
gpt4 key购买 nike

我需要监视我的应用程序中的任何屏幕分辨率变化,无论我的应用程序是否在前面。

我昨天在互联网上搜索了很多并尝试了所有这些选项:

applicationDidChangeScreenParameters;
CGDisplayRegisterReconfigurationCallback;
NSApplicationDidChangeScreenParametersNotification;

当我手动更改分辨率或插入/拔出新显示器时,我会收到通知。

但是当其他应用程序更改屏幕参数时我没有收到通知(大多数游戏在 2011 年之前制作)。

有什么方法可以知道任何 Mac 应用程序是否更改了屏幕分辨率?即使我的应用程序在后台?有任何通知吗?希望没有辅助功能 API...?

非常感谢

<小时/>

编辑(6 月 9 日)

这个答案Events when dock is showing or hiding对我有一点帮助。因为当另一个应用程序进入/退出全屏时我会收到通知,但当它更改分辨率而不更改全屏状态时不会收到通知=/并且它依赖于在 10.8 上已弃用的 Carbon API...

这并不完全是我想要的,但适用于大多数情况......还有其他方法可以实现 cocoa 吗?有这方面的全局通知吗?

最佳答案

您可能已经看过此页面:

https://developer.apple.com/library/mac/#documentation/GraphicsImaging/Conceptual/QuartzDisplayServicesConceptual/Articles/Notification.html%23//apple_ref/doc/uid/TP40004235-SW1

此外,您似乎需要考虑来自其他应用程序的通知,因此使用 NSDistributedNotificationCenter 而不仅仅是 NSNotificationCenter

关于macos - 有没有办法知道另一个应用程序是否更改了 Cocoa 中的显示分辨率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10966751/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com