C'è un modo per dire a OS X Lion di disabilitare la terminazione automatica per una data applicazione che non vuoi terminare automaticamente?
FYI Lion è un quitter se non lo sapessi già, e se non vuoi che sia per un certa applicazione.
Lion will quit your running applications behind your back if it decides it needs the resources, and if you don’t appear to be using them. The heuristic for determining whether an application is “in use” is very conservative: it must not be the active application, it must have no visible, non-minimized windows — and, of course, it must explicitly support Automatic Termination.
Ad esempio, supponiamo che non voglia che TextEdit si chiuda automaticamente quando non ho finestre di TextEdit aperte e passa a un'altra applicazione.
Dopo aver dato un'occhiata a Sezione Mac Programming Programming Guide per la terminazione automatica Ho pensato di provare ad aggiungere la chiave NSSupportsAutomaticTermination con il valore No al file Info.plist per TextEdit. (Non ha funzionato: TextEdit si arresta in modo anomalo all'apertura.)
Da notare, il file non includeva la chiave NSSupportsAutomaticTermination (il che significa che Apple stava usando NSProcessInfo per abilitare la terminazione automatica), quindi l'aggiunta di una chiave non avrebbe probabilmente alcun effetto poiché NSProcessInfo sovrascrive ciò che si trova nel file Plist. (Verificato che questo non funziona, autofirmando TextEdit con un Info.plist modificato inclusa la chiave NSSupportsAutomaticTermination e il valore di No).
Un effetto collaterale notato è che la modifica di qualsiasi cosa nel file Info.plist causa l'arresto anomalo di TextEdit all'apertura. La causa viene annotata dal registro degli arresti anomali come "firma codice non valida", il che significa che l'app TextEdit e tutto il suo contenuto sono firmati dal codice. La soluzione alternativa è di firmare automaticamente l'app utilizzando il comando codesign
e un certificato radice autofirmato come indicato in Attività di firma dei codici .
Dopo ciò che ho provato finora, TextEdit rispetta ancora la terminazione automatica.