PFE: Les paramètres d’une application iPhone avec Settings.bundle

Dans la création de votre application iPhone, vous avez bien sûr pensé à offrir, si besoin, la possibilité à l’utilisateur de pouvoir spécifier des réglages pour personnaliser l’application. Deux solutions s’offrent à vous.
La première, permettre à l’utilisateur d’affiner les réglages de l’application directement dans celle-ci. La seconde, utiliser le fichier Settings.bundle pour ajouter votre menu de paramètres dans les Réglages de l’iPhone ou de l’iPod touch. c’est cette seconde partie que nous traiterons ici.
Pour commencer, il suffit d’ajouter à votre projet courant un nouveau fichier de iPhone OS > Resource > Settings Bundle.
Ce fichier, sur votre disque, est en fait un paquet qui va contenir les différents fichiers de votre menu de réglages. On peut y trouver les fichiers suivants :

  • Root.plist (obligatoire)
    Pour définir les éléments du menu de réglages
  • D’autres fichiers .plist (facultatifs)
    Pour définir des sous-menus de vos réglages
  • Des dossiers en.lproj, fr.lproj… (facultatifs)
    Pour l’internationalisation de vos réglages

Tous les fichiers facultatifs doivent être créés par vous-même dans le paquet via le Finder. Dans les dossiers en.lproj, fr.lproj et autres, créez un fichier Root.strings, un fichier texte classique (comme pour les Localizable.strings).
Dans le fichier Root.plist > PreferenceSpecifiers, nous allons ajouter d’autres lignes en cliquant sur le + à droite. Chaque item, de type Dictionary, possède plusieurs enfants selon le type d’item à afficher. Voici quelques Types (String) d’éléments :

  • PSGroupSpecifier, pour créer un groupe d’objets
    Title:String
  • PSToggleSwitchSpecifier, pour des boutons ON/OFF
    Title:String, Key:String, DefaultValue:Boolean
  • PSTitleValueSpecifier, pour un titre et une valeur
    Title:String, Key:String, DefaultValue:*
  • PSMultiValueSpecifier, liste de choix
    Title:String, Key:String, DefaultValue:*, Titles:Array, Values:Array

Une fois que vous avez choisi les types de paramètre à afficher, testez votre bundle en compilant votre application.
Les fichiers Root.strings sont là pour traduire les Title, DefaultValue et Value de votre .plist.
Pour l’accès dans votre code aux paramètres (ici « booléen pour la clé ») de votre bundle, utilisez le code suivant :
[[NSUserDefaults standardUserDefaults] boolForKey:@"maCle"];
Si vous voulez écrire un paramètre de type Integer, utilisez ceci :
[[NSUserDefaults standardUserDefaults] setInteger:monInt forKey:@"maCle"];
Pour plus de détails, vous pouvez vous reporter à la documentation du SDK.
Liens: Liste des types d’éléments, guide des Préférences d’application.

Auteur: Benoit DELDICQUE

Actuellement en poste sur Strasbourg, je suis en charge de la conception et la réalisation d'applications iOS pour iPhone, iPad et iPod touch.

Articles similaires