Mac OS X-Programme werden nach dem Schließen des letzten Fensters geschlossen

45

Ich weiß, es ist nur ein kleiner Ärger, aber ich hasse es, dass Preview.app von Mac OS X geöffnet bleibt, wenn keine Fenster geöffnet sind. Gibt es eine Möglichkeit, es zu schließen, wenn sein letztes Fenster geschlossen wird?

Da ich in der Vorschau keine Option sehe, die dies ermöglicht, stelle ich mir vor, dass die Antwort auf andere Programme anwendbar sein könnte, die ähnliche… Besonderheiten aufweisen.

Mir ist klar, dass dies nicht außerhalb der Schnittstellenrichtlinien des Betriebssystems liegt. Das heißt, ich erkenne, dass dies kein Fehler ist, der behoben wird. Ich frage mich, ob es eine Möglichkeit gibt, ausgewählte GUI-Anwendungen, bei denen kein Fenster geöffnet ist, automatisch zu schließen.

wfaulk
quelle

Antworten:

22

Versuchen Sie RedQuits:

RedQuits hilft Ihnen, wenn Sie jemals versucht haben, eine Anwendung mit dem roten Knopf zu schließen und sich gefragt haben, warum sie noch geöffnet ist. Mit RedQuits werden alle Programme jetzt beendet, wenn nur noch ein Fenster für dieses Programm vorhanden ist. Wenn Sie alle geöffneten Fenster eines Programms beenden und schließen möchten, deaktivieren Sie einfach "Nur beenden, wenn für diese App noch 1 Fenster vorhanden ist". in den Einstellungen.

msaied
quelle
3
Was lustig ist, ist, dass RedQuits selbst nicht beendet wird, wenn Sie den roten Knopf drücken, heißt es in der Anleitung. Es ist einfach, was nett ist, aber keine weiße Liste.
Michael Ozeryansky
RedQuits schließt die Anwendung, wenn Sie auf die rote Schaltfläche zum Beenden klicken, nicht jedoch, wenn Sie das letzte Fenster mit Cmd + W schließen.
Sampo
23

Kurz gesagt: Nein.

- Hier hört die Antwort auf. Alles, was folgt, ist nur mein Versuch zu erklären, warum.

Was Sie erleben, ist die Mac-Philosophie, wie sich Anwendungen verhalten sollten. Diejenigen, die nach dem Verschwinden des letzten Fensters geschlossen werden, halten sich nicht an die Mac-Richtlinien für Benutzeroberflächen (obwohl es da draußen eine Menge gibt). // Bearbeiten: Dies ist nicht ganz korrekt, siehe Beiträge unten.

So war es seit dem ersten Mac-System (1984). Ich denke, es wird noch 25 Jahre bei uns bleiben. Vielleicht erlauben uns App-Entwickler, dies in den Einstellungen festzulegen.

Bis dahin hilft es, sich an Command-Q (die Apple-Taste und q) zu gewöhnen, um jede einzelne App zu beenden - und Command-W nur ​​für das aktive Fenster.

Wolf
quelle
1
Meine persönliche Meinung als Kommentar: Jeden Tag mit beiden Plattformen arbeiten: Ich habe mich daran gewöhnt. Macht gar keinen so großen Unterschied und hat - wie immer - zwei Seiten. Während die App läuft, ist jeder nachfolgende Start superschnell. Diese Apps, die ich nur ab und zu verwende, könnten genauso gut sofort geschlossen werden, nachdem ich sie verwende. Ich habe mich viel schneller an Apple-Q / Apple-W auf den Macs gewöhnt als an Alt-F4 / Strg-F4 auf den Windowsern.
Wolf
28
Sie können auch Q drücken, während Sie die Befehlstaste zum Wechseln von Anwendungen verwenden (und gleichzeitig Command gedrückt halten), um die Anwendung zu beenden, die derzeit in diesem Anwendungsumschalter markiert ist.
Arjan
+1 für Arjans Kommentar. Es ist eine erstaunliche Möglichkeit, eine große Anzahl von Apps gleichzeitig zu schließen. Sie tun dies, wenn Sie Speicherplatz freigeben müssen.
Dan Rosenstark
2
Was mich wirklich sehr geärgert hat, war, dass minimierte Apps im App-Switcher angezeigt wurden, aber nicht wiederhergestellt werden konnten, wenn sie ausgewählt wurden. Das fand ich sehr inkonsistent. Erst kürzlich - nach buchstäblich jahrelanger Nutzung - bin ich auf ALT gestoßen, als ich zur (minimierten) App gewechselt habe, um sie wiederherzustellen. Hallo !!!
Wolf
15
Um ehrlich zu sein, interessiert es mich nicht so sehr, ob das Symptom normal ist oder nicht. Ich bin daran interessiert, wie ich das Symptom beseitigen kann.
Wfaulk
3

Ich habe eine AppleScript-Anwendung geschrieben, um dies für Sie zu tun.

Kurz gesagt, überprüft es, welche Anwendungen geöffnet sind, gibt Ihnen die Möglichkeit, Apps auf die Whitelist zu setzen, um von der automatischen Beendigung ausgeschlossen zu werden. Anschließend werden alle 60 Sekunden alle Anwendungen beendet (was aufgrund von Einschränkungen möglich ist).

Wenn Sie die Whitelist während der Ausführung ändern möchten, klicken Sie im Dock auf das Symbol, damit der Auswahldialog erneut angezeigt wird.

Klicken Sie zum Beenden mit der rechten Maustaste auf das Dock-Symbol und wählen Sie "Beenden".

AppleScript-Quelle und -Anwendung: http://files.me.com/kioarthurdane/6kjl9k

dotHTM
quelle
Scheint eine gute Idee zu sein, außer es funktioniert nicht. Ich musste "name" in "display name" in refreshWindowedProcess () ändern, um zu verhindern, dass "where is this application" gefragt wird, aber selbst dann scheint es nie etwas zu beenden.
Wfaulk
Welche Version von OS X verwenden Sie? Ich habe mein Skript unter Snow Leopard geschrieben und bin mir nicht sicher, ob größere Änderungen an AppleScript vorgenommen wurden.
dotHTM
Egal, OmniGraffle Pro hat es mir gerade angetan. Sehr komisch in diesen Fällen, in denen der Name im Finder nicht der tatsächliche Dateiname ist ... Ich werde sehen, ob ich stattdessen mithilfe der Bundle-IDs eine Korrektur schreiben kann.
dotHTM
Aktualisiert mit Bundle-IDs anstelle des Anwendungsnamens (der sich vom Dateinamen der Anwendung unterscheiden kann). In der Quelle gibt es einen Hinweis zu zwei auskommentierten Zeilen, in denen die Liste der Fenster in jeder Bundle-ID angezeigt wird. Ich stelle fest, dass in vielen Anwendungen mindestens ein Fenster geöffnet ist, obwohl kein sichtbares Fenster geöffnet ist. NetNewsWire ist eine solche App mit einer langen Liste von Fenstern, auch wenn das Hauptfenster "geschlossen" ist. Die Trefferliste ist eine weitere App, deren einzelnes Fenster immer geöffnet ist.
dotHTM
Die Anzahl von Windows = 0 scheint die naheliegendste Methode zu sein, um Ihren Status für das Beenden zu ermitteln. Dies scheint jedoch nicht für alle Apps der Fall zu sein. Überlegen Sie sich Ihre eigenen Bedingungen, um sie meinem Code hinzuzufügen. Da nicht alle Anwendungen über ein AS-Wörterbuch verfügen, ist es schwierig, diese Anwendungen auf andere Bedingungen hin zu überprüfen (geschweige denn zeitaufwendig, für jede eine eigene Regel zu erstellen). Ich bin eher geneigt, den anderen Antworten zuzustimmen: "Es gehört zur Mac-Kultur, dass noch eine kopflose Anwendung ausgeführt wird." Wenn nichts unternommen wird, wird nicht viel CPU oder physischer RAM verbraucht.
dotHTM
3

Die in 10.7 eingeführte automatische Beendigungsfunktion behebt dies teilweise für einige Anwendungen.

Wenn Sie die Vorschau öffnen, mindestens ein Fenster darin öffnen, alle Fenster schließen und zu einer anderen Anwendung wechseln, wird die Vorschau vor dem Dock und dem Anwendungsumschalter ausgeblendet. Wenn Sie sich den Aktivitätsmonitor ansehen, wird der Prozess noch ausgeführt und verwendet Speicher. Möglicherweise werden jedoch einige Änderungen an der Verwaltung des Prozesses vorgenommen.

Im Programmierhandbuch für Mac-Apps heißt es, dass Prozesse tatsächlich beendet werden, sodass möglicherweise etwas fehlt.

  • Durch die automatische Beendigung müssen Benutzer eine App nicht mehr beenden. Stattdessen verwaltet das System die App-Beendigung transparent hinter den Kulissen und beendet Apps, die nicht verwendet werden, um die benötigten Ressourcen, wie z. B. Speicher, zurückzugewinnen.

[...]

Die automatische Beendigung überträgt die Aufgabe der Prozessverwaltung vom Benutzer auf das System, das für die Auftragsabwicklung besser gerüstet ist. Benutzer müssen Prozesse ohnehin nicht manuell verwalten. Alles, was sie wirklich brauchen, ist, Apps auszuführen und diese Apps zur Verfügung zu haben, wenn sie gebraucht werden. Die automatische Beendigung ermöglicht dies und stellt gleichzeitig sicher, dass die Systemleistung nicht beeinträchtigt wird.

Lri
quelle
1
Die Vorschau verschwindet für mich unter diesen Bedingungen am 10.7.4 nicht automatisch.
Wfaulk
Ich habe Ihren Kommentar früher verpasst, aber für mich in 10.8.2. Haben Sie mindestens ein Fenster geöffnet (z. B. das Einstellungsfenster geöffnet und geschlossen), bevor Sie die Vorschau ausgeblendet haben?
Lri
2

Eine weitere kostenlose kleine und einfache App, Quitter , zeigt ein X-Symbol in der Taskleiste an, das genau wie die Schließschaltfläche unter Windows funktioniert.

Andreas
quelle
4
Willkommen und vielen Dank für die Antwort! Sie sollten Ihre Zugehörigkeit zu dem verlinkten Produkt / Blog offen legen. Es ist normalerweise kein Problem, wenn alles über Bord gehalten wird :)
JoshP
0

Überschreiben Sie die folgende Methode in NSApplicationDelegate(die normalerweise zurückgibt NO):

-(BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSapplication*)sender
{
return YES;
}
Pierre Dufresne
quelle
Hierbei handelt es sich um eine Frage, wie Benutzer dies möglicherweise für vorhandene Anwendungen tun, und nicht, wie ein Programmierer möglicherweise von seinem Programm dazu gebracht wird, dies zu tun. Vielen Dank für Ihre Mühe.
Wfaulk