Obtention des applications Mac OS X à fermer après la dernière fenêtre fermée

45

Je sais que c'est juste une bête noire, mais je déteste que Preview.app de Mac OS X reste ouvert même s'il n'y a pas de fenêtre ouverte. Y a-t-il un moyen de le fermer quand sa dernière fenêtre est fermée?

Comme je ne vois pas d’option dans Preview pour y arriver, j’imagine que la réponse pourrait s’appliquer à d’autres programmes présentant des… idiosyncrasies similaires.

Je me rends compte que ce n'est pas en dehors des directives d'interface du système d'exploitation. C'est-à-dire que je reconnais que ce n'est pas un bogue qui sera corrigé. Je me demande s'il existe un moyen de fermer automatiquement certaines applications à interface graphique sans fenêtre ouverte.

wfaulk
la source

Réponses:

22

Essayez RedQuits:

RedQuits est là pour vous aider si vous avez déjà essayé de fermer une application avec son bouton rouge et vous vous demandez pourquoi elle est toujours ouverte. Avec RedQuits, tous les programmes sont maintenant arrêtés s’il ne reste plus qu’une fenêtre. Si vous souhaitez quitter et fermer toutes les fenêtres ouvertes d'un programme, décochez simplement "Quitter uniquement lorsqu'il reste une fenêtre pour cette application". dans les préférences.

msaied
la source
3
Ce qui est amusant, c’est que RedQuits n’arrête pas lui-même lorsque vous appuyez sur le bouton rouge, comme le dit la notice. C'est simple, ce qui est bien, mais pas de liste blanche.
Michael Ozeryansky
RedQuits ferme l'application si vous cliquez sur le bouton rouge de sortie, mais pas lors de la fermeture de la dernière fenêtre à l'aide de Cmd + W.
Sampo
23

En bref: Non.

- La réponse s'arrête ici. Tout ce qui suit n’est que ma tentative d’expliquer pourquoi.

Ce que vous expérimentez, c'est la philosophie Mac sur le comportement des applications. Ceux qui sont fermés après la disparition de la dernière fenêtre ne respectent pas les consignes relatives à l’interface Mac (même s’il en existe beaucoup). // Edit: Ce n'est pas tout à fait correct, voir les messages ci-dessous.

C’est ainsi depuis le tout premier système Mac (en 1984). Je suppose que cela restera avec nous pendant encore 25 ans. Peut-être que les développeurs d'applications nous permettront de définir cela dans les préférences.

Jusque-là, il est utile de s’habituer à Command-Q (la touche Pomme et q) pour quitter chaque application, et à Command-W pour la fenêtre active uniquement.

Loup
la source
1
Mon opinion personnelle en tant que commentaire: Travailler avec les deux plateformes tous les jours: je m'y suis habitué. Cela ne fait pas beaucoup de différence et, comme toujours, il a deux aspects. Lorsque l'application est en cours d'exécution, chaque démarrage ultérieur est extrêmement rapide. Les applications que je n'utilise que de temps en temps pourraient tout aussi bien être fermées juste après que je les utilise. Je me suis habitué à Apple-Q / Apple-W sur les Mac beaucoup plus rapide que Alt-F4 / Strg-F4 sur les Windows.
Wolf
28
Vous pouvez également appuyer sur Q tout en utilisant Commande-Tabulation pour changer d’application (donc en maintenant enfoncée la touche Commande), pour quitter l’application actuellement sélectionnée dans ce commutateur d’applications.
Arjan
+1 pour le commentaire d'Arjan. C'est un moyen incroyable de fermer un grand nombre d'applications à la fois. Vous faites cela chaque fois que vous avez besoin de libérer de la mémoire.
Dan Rosenstark
2
Ce qui m'a vraiment énervé, c'est que des applications réduites apparaissent dans le commutateur d'applications, mais ne soient pas restaurées si vous les choisissez. Que j'ai trouvé très incohérent. Récemment, après des années d’utilisation, je suis tombé sur ALT alors que le passage à l’application (minimisée) permettait de la restaurer. Hooooray !!!
Wolf
15
Pour être brutalement honnête, je ne suis pas tellement intéressé à savoir si le symptôme est normal ou non. Je suis intéressé par la façon de se débarrasser du symptôme.
wfaulk
3

J'ai écrit une application AppleScript pour le faire pour vous.

En bref, il vérifie quelles applications sont ouvertes, vous offre la possibilité d’inscrire la liste blanche des applications à exclure de la fermeture automatique, puis toutes les 60 secondes, ferme toutes les applications (qu’il peut, en raison de limitations).

Pour modifier la liste blanche pendant son exécution, cliquez sur l'icône dans le dock pour que la boîte de dialogue de sélection réapparaisse.

Pour quitter, cliquez avec le bouton droit sur l'icône du Dock et choisissez "Quitter".

Source AppleScript et application: http://files.me.com/kioarthurdane/6kjl9k

dotHTM
la source
Cela semble être une bonne idée, sauf que cela ne fonctionne pas. J'ai dû remplacer "nom" par "nom affiché" dans refreshWindowedProcess () pour l'empêcher de demander "où se trouve cette application", mais même dans ce cas, rien ne semble s'être arrêté.
Wfaulk
Quelle version d'OS X utilisez-vous? J'ai écrit mon script sous Snow Leopard sans savoir si des modifications majeures ont été apportées à AppleScript.
dotHTM
Peu importe, OmniGraffle Pro vient de me le faire. Très drôle ces cas où le nom dans le Finder n'est pas le nom du fichier réel ... Je vais voir si je peux écrire une correction à cela en utilisant les identificateurs de paquet.
dotHTM
Mise à jour en utilisant des identificateurs de paquet au lieu du nom de l'application (qui peut être différent du nom de fichier de l'application). Dans la source, il y a une note à propos de deux lignes commentées qui rapportera la liste des fenêtres dans chaque identifiant de paquet. Je remarque que de nombreuses applications indiquent qu’au moins une fenêtre est ouverte alors qu’aucune fenêtre visible n’est ouverte. NetNewsWire est une application de ce type ayant une longue liste de fenêtres même après que la fenêtre principale soit "fermée". La liste des résultats est une autre application qui conserve sa fenêtre unique est toujours ouverte.
dotHTM
Compter sur Windows = 0 semble être le moyen le plus évident de détecter votre état d'abandon du tabac, mais cela ne semble pas être efficace pour toutes les applications. Proposez vos propres conditions à ajouter à mon code. Étant donné que toutes les applications ne disposent pas d'un dictionnaire AS, il sera difficile de rechercher dans ces applications d'autres conditions (sans parler du temps nécessaire à la définition d'une règle distincte pour chacune d'elles). Je suis plus enclin à être d’accord avec les autres réponses données de «Cela fait partie de la culture Mac d’avoir une application sans tête toujours en cours d’exécution» À moins que cela ne produise quelque chose, cela ne demandera pas beaucoup de processeur ou de RAM physique.
dotHTM
3

La fonctionnalité de terminaison automatique introduite dans 10.7 répond partiellement à cela pour certaines applications.

Si vous ouvrez Aperçu, si vous ouvrez au moins une fenêtre, fermez toutes les fenêtres et passez à une autre application, l’aperçu est masqué du Dock et du commutateur d’applications. Si vous regardez Activity Monitor, le processus est toujours en cours d'exécution et utilise de la mémoire, mais il pourrait y avoir des changements dans la façon dont le processus est géré.

Le Guide de programmation de l'application Mac indique que les processus sont en réalité terminés. Il se peut donc qu'il manque quelque chose.

  • La résiliation automatique élimine le besoin pour les utilisateurs de quitter une application. Au lieu de cela, le système gère les terminaisons d'applications de manière transparente en coulisse, mettant fin aux applications qui ne sont pas utilisées pour récupérer les ressources nécessaires telles que la mémoire.

[...]

La terminaison automatique transfère le travail de gestion des processus de l'utilisateur au système, qui est mieux équipé pour gérer le travail. Les utilisateurs n'ont de toute façon pas besoin de gérer les processus manuellement. Tout ce dont ils ont besoin, c’est d’exécuter des applications et d’avoir ces applications disponibles quand elles en ont besoin. La résiliation automatique rend cela possible tout en garantissant que les performances du système ne sont pas affectées.

Lri
la source
1
La prévisualisation ne disparaît certainement pas automatiquement pour moi dans ces conditions au 10.7.4.
wfaulk
J'ai manqué votre commentaire plus tôt, mais il le fait pour moi dans 10.8.2. Avez-vous ouvert au moins une fenêtre (comme ouvrir et fermer la fenêtre des préférences) avant de masquer Aperçu?
Lri
2

Une autre petite application simple et gratuite, Quitter , affiche une icône en forme de X dans la barre des tâches, qui agit comme le bouton de fermeture sous Windows.

Andreas
la source
4
Bienvenue et merci d'avoir posté une réponse! Vous devez divulguer votre affiliation avec le produit / blog lié. Ce n'est généralement pas un problème quand tout est gardé au-dessus de tout bord :)
JoshP
0

Remplacez la méthode suivante dans NSApplicationDelegate(qui renvoie normalement NO):

-(BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSapplication*)sender
{
return YES;
}
Pierre Dufresne
la source
Ceci est une question sur la façon dont les utilisateurs peuvent rendre cela possible aux applications existantes, et non sur la manière dont un programmeur peut obtenir que son programme le fasse. Merci pour vos efforts, cependant.
wfaulk