Gibt es eine Möglichkeit, OS X Lion anzuweisen, die automatische Beendigung für eine bestimmte Anwendung zu deaktivieren, die Sie nicht automatisch beenden möchten?
FYI Lion ist ein Quitter, wenn Sie nicht bereits wussten, was ist, wenn Sie nicht möchten, dass es für eine bestimmte Anwendung ist.
Lion beendet Ihre laufenden Anwendungen hinter Ihrem Rücken, wenn es entscheidet, dass es die Ressourcen benötigt, und wenn Sie sie scheinbar nicht verwenden. Die Heuristik zur Bestimmung, ob eine Anwendung "in Verwendung" ist, ist sehr konservativ: Sie darf nicht die aktive Anwendung sein, sie darf keine sichtbaren, nicht minimierten Fenster haben - und natürlich muss sie automatisch die automatische Beendigung unterstützen.
Angenommen, ich möchte nicht, dass TextEdit automatisch beendet wird, wenn keine TextEdit-Fenster geöffnet sind, und zu einer anderen Anwendung wechseln.
Nachdem ich mir den Abschnitt im Mac App-Programmierhandbuch für die automatische Beendigung angesehen hatte, dachte ich, ich würde versuchen, den Schlüssel NSSupportsAutomaticTermination mit dem Wert No zur Datei Info.plist für TextEdit hinzuzufügen. (Hat nicht funktioniert: TextEdit stürzt beim Öffnen ab.)
Zu beachten ist, dass die Datei keinen NSSupportsAutomaticTermination-Schlüssel enthielt (was bedeutet, dass Apple NSProcessInfo verwendet hat , um die automatische Terminierung zu aktivieren), sodass das Hinzufügen eines Schlüssels wahrscheinlich sowieso keine Auswirkung hat, da NSProcessInfo den Inhalt der Plist-Datei überschreibt. (Verifiziert, dass dies nicht funktioniert, indem Sie TextEdit mit einer geänderten Info.plist selbst signieren, die den Schlüssel NSSupportsAutomaticTermination und den Wert No enthält.)
Ein Nebeneffekt ist, dass das Ändern von Elementen in der Datei Info.plist dazu führt, dass TextEdit beim Öffnen abstürzt. Die Ursache wird im Absturzprotokoll als "Codesignatur ungültig" vermerkt. Dies bedeutet, dass die TextEdit-App und ihr gesamter Inhalt mit Code signiert sind. Die Problemumgehung besteht darin, die App mithilfe des codesign
Befehls und eines selbstsignierten Stammzertifikats selbst zu signieren , wie in der Aufgabe "Codesignatur" angegeben .
Nach dem, was ich bisher versucht habe, befolgt TextEdit immer noch die automatische Beendigung.