Existe-t-il un moyen de dire à OS X Lion de désactiver la terminaison automatique pour une application donnée que vous ne souhaitez pas terminer automatiquement?
FYI Lion est un abandon si vous ne le saviez pas déjà, et si vous ne voulez pas que ce soit pour un certain Applicaiton.
Lion quittera vos applications en cours d'exécution derrière votre dos s'il décide qu'il a besoin des ressources et si vous ne semblez pas les utiliser. L'heuristique pour déterminer si une application est «en cours d'utilisation» est très conservatrice: elle ne doit pas être l'application active, elle ne doit pas avoir de fenêtres visibles et non minimisées - et, bien sûr, elle doit explicitement prendre en charge l'arrêt automatique.
Par exemple, disons que je ne veux pas que TextEdit se ferme automatiquement lorsque je n'ai aucune fenêtre TextEdit ouverte et que je passe à une autre application.
Après avoir jeté un œil à la section Guide de programmation de l'application Mac pour la terminaison automatique, j'ai pensé que j'essaierais d'ajouter la clé NSSupportsAutomaticTermination avec la valeur Non au fichier Info.plist pour TextEdit. (N'a pas fonctionné: TextEdit se bloque à l'ouverture.)
À noter, le fichier n'incluait pas la clé NSSupportsAutomaticTermination (ce qui signifie qu'Apple utilisait NSProcessInfo pour activer la terminaison automatique), l'ajout d'une clé n'aurait donc probablement aucun effet puisque NSProcessInfo remplace ce qui se trouve dans le fichier plist. (Vérifié, cela ne fonctionne pas, en auto-signant TextEdit avec un Info.plist modifié comprenant la clé NSSupportsAutomaticTermination et la valeur Non).
Un effet secondaire noté est que la modification de quelque chose dans le fichier Info.plist provoque le blocage de TextEdit lors de son ouverture. La cause est notée dans le journal des pannes comme une "signature de code non valide", ce qui signifie que l'application TextEdit et tout son contenu sont signés par du code. La solution consiste à auto-signer l'application à l'aide de la codesign
commande et d'un certificat racine auto-signé, comme indiqué dans la tâche de signature de code .
Après ce que j'ai essayé jusqu'à présent, TextEdit obéit toujours à la résiliation automatique.