Digamos que quiero escribir una aplicación Cocoa simple para hacer que la función Espacios de Leopard sea más útil. Me gustaría configurar cada espacio que tiene, por ejemplo, diferentesDetectando cuando un espacio cambia en Espacios en Mac OS X
- resoluciones de pantalla
- disposiciones de teclado
- volumen (para audio)
Así que hay dos partes a mi pregunta:
- Supongo que hay formas de modificar estas tres cosas independientemente de Spaces, ¿verdad? ¿Si es así, cómo?
- ¿Cómo puedo detectar en mi aplicación cuando se produce un cambio de espacio, y cuando eso sucede, determine a qué espacio el usuario acaba de cambiar? ¿Leopard envía algunas notificaciones distribuidas o algo así?
Actualización: Tiene que haber alguna forma de API pública para hacer esto, a juzgar por todas las aplicaciones relacionadas con Spaces en la Mac App Store.
Gracias. Pero, ¿y si no hay ventanas en el espacio? ¿Se puede manejar ese caso a través de una API pública? – Enchilada
En su aplicación, cree una ventana transparente y configúrela para unir todos los espacios, luego búsquela en la matriz de ventanas. Para establecer una ventana en todos los espacios use esto: [transparentWindow setCollectionBehavior: NSWindowCollectionBehaviorCanJoinAllSpaces] – BendiLow
Cuando uso 'kCGWindowWorkspace' noté que el Space ID cambia después de un reinicio por espacios después del primero (en Lion). Eso hace que almacenar el ID sea bastante inútil ... ¿Hay otra API pública para esto? (Quizás relacionado con esto: http://openradar.appspot.com/9241430) – Mark