Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 有没有办法知道其他应用程序是否更改了Cocoa中的显示分辨率?_Macos_Cocoa_Notifications_Resolution - Fatal编程技术网

Macos 有没有办法知道其他应用程序是否更改了Cocoa中的显示分辨率?

Macos 有没有办法知道其他应用程序是否更改了Cocoa中的显示分辨率?,macos,cocoa,notifications,resolution,Macos,Cocoa,Notifications,Resolution,我需要监视我的应用程序中的任何屏幕分辨率更改,无论是否将我的应用程序放在前面 我昨天在互联网上搜索了很多,并尝试了所有这些选项: applicationDidChangeScreenParameters; CGDisplayRegisterReconfigurationCallback; NSApplicationDidChangeScreenParametersNotification; 当我手动更改分辨率或插入/拔出新显示器时,会收到通知 但当其他应用程序更改屏幕参数时(大多数游戏在201

我需要监视我的应用程序中的任何屏幕分辨率更改,无论是否将我的应用程序放在前面

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

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

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

有没有办法知道mac应用程序是否改变了屏幕分辨率?即使我的应用程序在后台?有通知吗?希望没有可访问性API

多谢各位


编辑(6月9日)

这个答案对我有点帮助。因为当另一个应用程序进入/退出全屏时,我会收到通知,但当它更改分辨率而不更改全屏状态时,我不会收到通知=/而且它依赖于10.8中不推荐使用的Carbon API

这不完全是我想要的,但在大多数情况下都有效。。。
有没有其他方法可以在可可上实现这一目标?有关于此的全局通知吗?

您可能已经看过此页面:


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

您这样做是为了什么?如果用户启动全屏游戏,您的应用程序可能不应该对此做出任何响应,因为在游戏期间,用户不会与您的应用程序进行图形交互,当游戏退出时,屏幕分辨率将恢复。这是针对我的应用程序的:它在后台运行,我需要知道是否有任何东西改变了屏幕分辨率,以解决一些游戏中使用不同于桌面分辨率时出现的问题。是的,我读过这篇文章。也许我看错了什么。我会再检查一遍的。你过得怎么样?这似乎很奇怪,系统没有提供这些通知,所以我很好奇,如果你得到它的工作!由于某种原因,NSDistributedNotificationCenter不适合我。使用NSNotificationCenter时,我收到了通知。但是,当某些应用程序临时更改屏幕分辨率(并在退出时返回到以前的分辨率)时,我的应用程序根本不会收到任何通知。不确定这是错误还是功能。