2011-03-30 19 views
7

Estoy trabajando en una aplicación de utilidad que controla otras aplicaciones en ejecución. En ciertos eventos de entrada, mi aplicación muestra una ventana, el usuario puede elegir alguna operación desde la ventana, la ventana desaparece y el control vuelve a la aplicación anterior. Mi problema es que al hacer clic en la ventana de mi aplicación se activa mi aplicación, lo que elimina el foco de la ventana de la aplicación anterior. Puedo volver a activar la aplicación anterior cuando se cierra mi ventana, pero prefiero mantener la aplicación original activada todo el tiempo. ¿Es eso posible?¿Aceptar clics del mouse sin activar la aplicación?

Respuesta

5

Es bastante fácil para, simplemente hacer que su ventana de una instancia de NSPanel (una subclase de NSWindow), y configurarlo como de no activación en Xcode/IB (o crear mediante programación, con NSNonactivatingPanelMask en la máscara de estilo).

enter image description here

+0

¡Eso es todo! Gracias. – zoul

0

Una idea sería: mientras se ejecuta su aplicación, intente mantener un registro de la ventana activa en el sistema. Después de activar su aplicación y hacer clic en el botón de comando, restaure la ventana activa anterior. Esto es solo una idea, no sé cómo hacerlo en mac.

+0

Esto es lo que estoy haciendo ahora, pero no estoy del todo contento con la solución, ya que se puede ver la ventana original perder el foco por un segundo. – zoul

Cuestiones relacionadas