Laisser au Framework le soin de gérer les préférences
// Filed in: XCode
Un fichier de
préférences d'une application est un fichier sis dans
le dossier ~/Library/Preferences. Il porte un nom de
la forme com.application.plist
et vous pouvez l'ouvrir
avec Property List Editor. Mais en fait, il s'agit
d'un fichier au format XML comme bon nombre de
fichiers systèmes de MAC OS X.
Depuis Panther, xCode permet d'utiliser un technique très sophistiquée pour vous décharger des tâches de gestion des préférences : le BINDING
Grâce à cette technique, la valeur ou une propriété d'un objet peut être automatiquement reliée à une entrée du fichier des préférences.
Commencez par ajouter cette icône à votre fichier d'interface : faites glisser l'icône de la palette vers la fenêtre du fichier application.nib
Ensuite, sélectionnez le contrôle dont vous voulez contrôler la valeur, par exemple, puis afficher la fenêtre d'informations. Dans le menu déroulant en haut, sélectionnez "Bindings". La fenêtre adapte le contenu à ce que vous voulez faire et vous présente les propriétés de l'objet que vous pouvez lier à une entrée du fichier de préférences; parmi ces propriétés, vous avez "value" qui représente sa valeur :
- contenu d'une zone de texte
- valeur d'une case à cocher
- etc...
Déroulez "value" et remplissez les zones comme indiqué ci-dessous :
- Bind to : choisissez "Shared User Defaults"
- Controller Key : values, pas le choix
- Model Key Path : le nom de la variable dans le fichier des préférences
Dès lors, chaque fois que vous modifierez la valeur du contrôle, elle ira s'inscrire dans le fichier des préférences de votre application sans écrire une seule ligne de code.
Maintenant, si vous voulez utiliser cette valeur dans le programme, il est inutile d'écrire une méthode compliquée pour relire le contenu du fichier. Il suffit de faire comme suit (exemple pour lire l'état d'une case à cocher) :
Depuis Panther, xCode permet d'utiliser un technique très sophistiquée pour vous décharger des tâches de gestion des préférences : le BINDING
Grâce à cette technique, la valeur ou une propriété d'un objet peut être automatiquement reliée à une entrée du fichier des préférences.
Commencez par ajouter cette icône à votre fichier d'interface : faites glisser l'icône de la palette vers la fenêtre du fichier application.nib
Ensuite, sélectionnez le contrôle dont vous voulez contrôler la valeur, par exemple, puis afficher la fenêtre d'informations. Dans le menu déroulant en haut, sélectionnez "Bindings". La fenêtre adapte le contenu à ce que vous voulez faire et vous présente les propriétés de l'objet que vous pouvez lier à une entrée du fichier de préférences; parmi ces propriétés, vous avez "value" qui représente sa valeur :
- contenu d'une zone de texte
- valeur d'une case à cocher
- etc...
Déroulez "value" et remplissez les zones comme indiqué ci-dessous :
- Bind to : choisissez "Shared User Defaults"
- Controller Key : values, pas le choix
- Model Key Path : le nom de la variable dans le fichier des préférences
Dès lors, chaque fois que vous modifierez la valeur du contrôle, elle ira s'inscrire dans le fichier des préférences de votre application sans écrire une seule ligne de code.
Maintenant, si vous voulez utiliser cette valeur dans le programme, il est inutile d'écrire une méthode compliquée pour relire le contenu du fichier. Il suffit de faire comme suit (exemple pour lire l'état d'une case à cocher) :
// Déclaration du fichier des préférences
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
// ...
BOOL bCase = ([defaults integerForKey:@"uneCase"]==NSOnState);