Existe-t-il un moyen d'indiquer à OS X Lion de désactiver l'arrêt automatique pour une application donnée que vous ne souhaitez pas voir s'arrêter automatiquement ?
FYI Le Lion est un lâcheur si vous ne le saviez pas déjà, que faire si vous ne voulez pas que ce soit pour une certaine 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 permettant de 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 réduites - et, bien sûr, elle doit explicitement prendre en charge la terminaison 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 coup d'œil à Section du Guide de programmation de Mac App concernant l'arrêt automatique Je me suis dit que j'allais essayer d'ajouter la clé NSSupportsAutomaticTermination avec la valeur No au fichier Info.plist de TextEdit (cela n'a pas marché : TextEdit se plante à l'ouverture).
À noter que le fichier n'incluait pas la clé NSSupportsAutomaticTermination (ce qui signifie qu'Apple utilisait l'option NSProcessInfo pour activer la terminaison automatique), donc ajouter une clé n'aurait probablement aucun effet de toute façon puisque NSProcessInfo remplace ce qui est dans le fichier plist. (Vérifiez que cela ne fonctionne pas, en auto-signant TextEdit avec un Info.plist modifié incluant la clé NSSupportsAutomaticTermination et la valeur No).
Un effet secondaire a été noté : le fait de modifier quoi que ce soit dans le fichier Info.plist entraîne le plantage de TextEdit à l'ouverture. La cause est notée dans le journal des pannes comme "signature de code invalide", ce qui signifie que l'application TextEdit et tout son contenu sont signés. La solution de contournement consiste à auto-signer l'application à l'aide de la fonction codesign
et un certificat racine auto-signé comme indiqué dans la section Tâche de signature du code .
Après ce que j'ai essayé jusqu'à présent, TextEdit obéit toujours à la résiliation automatique.