Hacer que las aplicaciones de Mac OS X se cierren después de cerrar la última ventana

45

Sé que es solo un motivo favorito, pero odio que Preview.app de Mac OS X permanezca abierto cuando no tiene ventanas abiertas. ¿Hay alguna forma de cerrarlo cuando se cierra su última ventana?

Dado que no veo ninguna opción dentro de Vista previa para que eso suceda, imagino que la respuesta podría ser aplicable a otros programas que tienen ... idiosincrasias similares.

Me doy cuenta de que esto no está fuera de las pautas de interfaz del sistema operativo. Es decir, reconozco que esto no es un error que se solucionará. Me pregunto si hay alguna forma de cerrar automáticamente las aplicaciones GUI seleccionadas que no tienen ventanas abiertas.

wfaulk
fuente

Respuestas:

22

Prueba RedQuits:

RedQuits está ahí para ayudarlo si alguna vez intentó cerrar una aplicación con su botón rojo y se preguntó por qué todavía está abierta. Con RedQuits, todos los programas ahora se cierran cuando solo queda una ventana para ese programa. Si desea salir y cerrar todas las ventanas abiertas de un programa, simplemente desmarque "Salir solo cuando quede 1 ventana para esa aplicación". en las preferencias

msaied
fuente
3
Lo curioso es que RedQuits en sí no se cierra cuando presiona el botón rojo, así lo dice en las instrucciones. Es simple, lo cual es bueno, pero no hay una lista blanca.
Michael Ozeryansky
RedQuits cierra la aplicación si hace clic en el botón de salida rojo, pero no cuando cierra la última ventana usando Cmd + W.
Sampo
23

En resumen: no.

- La respuesta se detiene aquí. Todo lo que sigue es solo mi intento de explicar por qué.

Lo que está experimentando es la filosofía Mac de cómo deberían comportarse las aplicaciones. Aquellos que están cerrados después de que la última ventana desaparece no se están comportando según las Pautas de interfaz de Mac (aunque hay muchos por ahí). // Editar: Esto no es del todo correcto, vea las publicaciones a continuación.

Ha sido así desde el primer sistema Mac (en 1984). Supongo que se quedará con nosotros durante otros 25 años. Tal vez los desarrolladores de aplicaciones nos permitirán establecer eso en las preferencias.

Hasta entonces, ayuda acostumbrarse a Command-Q (la tecla Apple y q) para salir de todas y cada una de las aplicaciones, y Command-W solo para la ventana activa.

Lobo
fuente
1
Mi opinión personal como comentario: trabajar con ambas plataformas todos los días: me acostumbré. No hace tanta diferencia y, como siempre, hay dos lados. Mientras se ejecuta la aplicación, cada inicio posterior es súper extremadamente rápido. Esas aplicaciones que uso solo de vez en cuando también podrían cerrarse justo después de usarlas. Me acostumbré a Apple-Q / Apple-W en las Mac mucho más rápido que Alt-F4 / Strg-F4 en los Windowsers.
Wolf
28
También se puede presionar Q mientras se usa Comando-Tab para cambiar de aplicación (por lo tanto, mientras se mantiene presionada la tecla Comando), para salir de la aplicación que actualmente está resaltada en ese conmutador de aplicaciones.
Arjan
+1 para el comentario de Arjan. Es una forma increíble de cerrar una gran cantidad de aplicaciones a la vez. Usted hace esto siempre que necesite liberar algo de memoria.
Dan Rosenstark
2
Lo que realmente me molestó fue que las aplicaciones minimizadas aparecieron en el selector de aplicaciones, pero no se restablecerían si las eligen. Eso me pareció muy inconsistente. Recientemente, después de literalmente años de uso, me encontré presionando ALT mientras cambiaba a la aplicación (minimizada) para restaurarla. Hooooray !!!
Wolf
15
Para ser brutalmente honesto, no estoy tan interesado en saber si el síntoma es normal o no. Estoy interesado en cómo deshacerme del síntoma.
wfaulk
3

Escribí una aplicación AppleScript para hacer esto por ti.

En resumen, comprueba qué aplicaciones están abiertas, le da la opción de incluir en la lista blanca las aplicaciones que se excluirán del cierre automático, luego cada 60 segundos, cierra todas las aplicaciones (que puede, debido a limitaciones).

Para modificar la lista blanca mientras se está ejecutando, haga clic en el icono en el dock para que vuelva a aparecer el cuadro de diálogo de selección.

Para salir, haga clic derecho en el icono del Dock y elija "Salir"

Fuente y aplicación de AppleScript: http://files.me.com/kioarthurdane/6kjl9k

dotHTM
fuente
Parece una buena idea, excepto que no funciona. Tuve que cambiar "nombre" a "nombre mostrado" en refreshWindowedProcess () para evitar que preguntara "dónde está esta aplicación", pero aun así parece que nunca se cierra nada.
wfaulk
¿Qué versión de OS X estás usando? Escribí mi script bajo Snow Leopard, no estoy seguro de si ha habido cambios importantes en AppleScript.
dotHTM
No importa, OmniGraffle Pro me lo acaba de hacer. Muy gracioso esos casos donde el nombre en Finder no es el nombre real del archivo ... Veré si puedo escribir una corrección a esto usando los identificadores de paquete.
dotHTM
Se actualiza utilizando identificadores de paquete en lugar del nombre de la aplicación (que puede ser diferente al nombre de archivo de la aplicación). En la fuente, hay una nota sobre dos líneas comentadas que informarán la lista de ventanas en cada identificador de paquete. Noto que muchas aplicaciones informan que tienen al menos una ventana abierta a pesar de que no hay ninguna ventana visible abierta. NetNewsWire es una de esas aplicaciones que tiene una larga lista de ventanas incluso después de que la ventana principal está "cerrada". La Lista de resultados es otra aplicación que conserva que su ventana única siempre está abierta.
dotHTM
El conteo de Windows = 0 parece la forma más obvia de detectar su estado para salir, pero no parece hacer el trabajo para todas las aplicaciones. Presente sus propias condiciones para agregar a mi código. Como no todas las aplicaciones tienen un diccionario AS, será difícil verificar esas aplicaciones para cualquier otra condición (y mucho menos para hacer una regla separada para cada una). Estoy más inclinado a estar de acuerdo con las otras respuestas dadas de "Es parte de la Cultura Mac tener una aplicación sin cabeza aún ejecutándose" A menos que esté haciendo algo, no va a tomar mucha CPU o RAM física.
dotHTM
3

La función de terminación automática introducida en 10.7 aborda parcialmente eso para algunas aplicaciones.

Si abre Vista previa, abra al menos una ventana, cierre todas las ventanas y cambie a otra aplicación, Vista previa se oculta del Dock y del conmutador de aplicaciones. Si observa el Monitor de actividad, el proceso aún se está ejecutando y usa memoria, pero puede haber algunos cambios en la forma en que se administra el proceso.

La Guía de programación de aplicaciones de Mac dice que los procesos están realmente terminados, por lo que podría haber algo que me falta.

  • La terminación automática elimina la necesidad de que los usuarios salgan de una aplicación. En cambio, el sistema gestiona la finalización de la aplicación de forma transparente detrás de escena, finalizando las aplicaciones que no están en uso para recuperar los recursos necesarios, como la memoria.

[...]

La terminación automática transfiere el trabajo de gestión de procesos del usuario al sistema, que está mejor equipado para manejar el trabajo. Los usuarios no necesitan gestionar los procesos manualmente de todos modos. Todo lo que realmente necesitan es ejecutar aplicaciones y tener esas aplicaciones disponibles cuando las necesiten. La terminación automática lo hace posible y garantiza que el rendimiento del sistema no se vea afectado negativamente.

Lri
fuente
1
La vista previa ciertamente no desaparece automáticamente en esas condiciones en 10.7.4.
wfaulk
Me perdí tu comentario antes, pero lo hace para mí en 10.8.2. ¿Abrió al menos una ventana (como abrir y cerrar la ventana de preferencias) antes de ocultar Vista previa?
Lri
2

Otra aplicación pequeña y simple gratuita, Quitter , muestra un icono X en la barra de la bandeja que actúa como el botón de cierre en Windows.

Andreas
fuente
44
¡Bienvenido y gracias por publicar una respuesta! Debe divulgar su afiliación con el producto / blog vinculado. No suele ser un problema cuando todo se mantiene por encima del tablero :)
JoshP
0

Anule el siguiente método en NSApplicationDelegate(que normalmente regresa NO):

-(BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSapplication*)sender
{
return YES;
}
Pierre Dufresne
fuente
Esta es una pregunta sobre cómo los usuarios pueden hacer que esto suceda en las aplicaciones existentes, no cómo un programador podría lograr que su programa lo haga. Gracias por tu esfuerzo, sin embargo.
wfaulk