2012-06-10 22 views
5

Necesito controlar cualquier cambio de resolución de pantalla en mi aplicación, con mi aplicación en primer plano o no.¿Hay alguna manera de saber si otra aplicación cambió la resolución de la pantalla en Cocoa?

busqué mucho en internet ayer y probado todas estas opciones:

applicationDidChangeScreenParameters; 
CGDisplayRegisterReconfigurationCallback; 
NSApplicationDidChangeScreenParametersNotification; 

que recibir notificaciones cuando cambio la resolución manualmente o enchufe/desenchufe una nueva pantalla.

Pero no recibo notificaciones cuando otras aplicaciones cambian los parámetros de la pantalla (la mayoría de los juegos se realizaron antes de 2011).

¿Hay alguna forma de saber si Cualquier aplicación mac cambia la resolución de la pantalla? Incluso si mi aplicación está en segundo plano? ¿Alguna notificación? Esperemos que sin API de accesibilidad ...?

Muchas gracias


EDITAR (9 de junio)

Esta respuesta Events when dock is showing or hiding Me ayudó un poco. Como recibo la notificación cuando otra aplicación ingresa/sale de pantalla completa, pero no cuando cambia la resolución sin cambiar el estado de pantalla completa =/Y depende de las API de Carbono que están en desuso en 10.8 ...

No es exactamente lo que Quiero pero funciona para la mayoría de los casos ... ¿Hay alguna otra forma de lograr el cacao? ¿Alguna notificación global para esto?

+0

¿Qué estás haciendo esto? Si el usuario inicia un juego de pantalla completa, su aplicación probablemente no debería tener nada que hacer en respuesta a esto, ya que el usuario no interactuará gráficamente con su aplicación durante la duración del juego, y la resolución de la pantalla se restaurará. cuando el juego se cierra – user57368

+1

Esto es para mi aplicación: http://joystickmapper.com/ Se ejecuta en segundo plano y necesito saber si algo cambia la resolución de la pantalla para solucionar un problema que ocurre en algunos juegos cuando se usa una resolución diferente a la del escritorio. – Rodrigo

Respuesta

1

Es probable que ya se veía en este página:

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

También parece que necesita para tener en cuenta las notificaciones de otras aplicaciones, por tanto, utilizar NSDistributedNotificationCenter en lugar de simplemente NSNotificationCenter.

+0

Sí, he leído esto. Tal vez malinterpreté algo. Voy a verificarlo solo para estar seguro. – Rodrigo

+0

¿Cómo te fue? Parece extraño que el sistema no proporcione estas notificaciones, así que tengo curiosidad si lo hiciste funcionar. – markjs

+0

Por alguna razón, NSDistributedNotificationCenter no funciona para mí. cuando uso NSNotificationCenter, recibí las notificaciones. sin embargo, cuando alguna aplicación cambia la resolución de la pantalla temporalmente (y vuelve a la resolución anterior al salir), mi aplicación simplemente no recibe ninguna notificación. No estoy seguro si esto es un error o una característica. – Rodrigo

Cuestiones relacionadas