Cómo interceptar una tecla de acceso rápido en Cocoa cuando la ventana de la aplicación no está activa

StackOverflow https://stackoverflow.com/questions/1914811

Pregunta

Estoy tratando de crear una utilidad que no se abre una ventana cuando se ejecuta, y que se activaría de una tecla de acceso rápido; He leído que actualmente cacao no tiene una función para ello, y que debería utilizar una función de carbono en desuso.

¿No hay realmente una manera de utilizar las teclas de acceso globales en Cocoa? ¿Qué debería hacer: esperar a cacao para introducir una función de eso, o utilizar la función de carbono hasta una función similar no se introduce en el cacao

¿Fue útil?

Solución

Con del Gestor de eventos de carbono función RegisterEventHotKey . Esta función es compatible con 64 bits (aviso de que carece de la “no está disponible en 64 bits” Nota de disponibilidad).

A la inversa, nuevo método de addGlobalMonitorForEventsMatchingMask:handler: NSEvent en Snow Leopard es no de la manera más fácil de poner en práctica una combinación de teclas. Por un lado, se requiere que el usuario tenga acceso a los dispositivos de asistencia encendido; Por otra parte, se requiere que examinar cada caso a sí mismo, en comparación con el sistema RegisterEventHotKey, que sólo llama a su función de devolución de llamada cuando el usuario presiona la tecla específica para la que se registró.

Otros consejos

Tome un vistazo a Grabadora de acceso directo ( http://wafflesoftware.net/shortcut/ ) un marco que utiliza el Administrador de carbono Evento de teclas de acceso rápido globales sino que también le permite cambiar el usuario para cambiar la tecla de acceso (si esto es lo que quiere).

Y ver este Proyecto / Código sobre la forma de ponerla en práctica: http://github.com/sdegutis/SDGlobalShortcuts .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top