2011-02-08 5 views
2

J'ai une application iPhone avec un fichier Settings.bundle. Ce lot contient des éléments avec des valeurs par défaut qui doivent être dépendantes des paramètres régionaux (ex: "Unités métriques" doit être "désactivé" pour les États-Unis et "activé" pour le Brésil et autres).Paramètres par défaut spécifiques aux paramètres régionaux dans XCode/iOS

Y a-t-il des façons de conserver les paramètres par défaut en fonction des paramètres régionaux?

Répondre

3

J'ai eu un problème similaire il y a quelques jours. D'après ce que je sais, il est impossible d'avoir différentes valeurs par défaut pour différentes régions, donc je l'ai résolu d'une manière différente. J'ai un paramètre à valeurs multiples avec DefaultFahrenheit et Celsius. Par défaut, il est réglé par défaut, ce qui signifie que je figure sur l'unité dans le code en fonction du paramètre NSLocale

Quelque chose comme ceci:

- (MBUnit)temperatureUnit { 
    MBUnit tmp = [ud integerForKey:MBUDKeyTemperatureUnit]; 
    if (tmp == MBTemperatureDefaultUnit) { 
     MBUnit defaultTemperatureUnit; 
     BOOL isMetric = [[[NSLocale currentLocale] objectForKey:NSLocaleUsesMetricSystem] boolValue]; 
     if (isMetric) { 
      defaultTemperatureUnit = MBTemperatureCelsiusUnit; 
     } 
     else { 
      defaultTemperatureUnit = MBTemperatureFahrenheitUnit; 
     } 
     return defaultTemperatureUnit; 
    } 
    return [ud integerForKey:MBUDKeyTemperatureUnit]; 
} 
+0

Dommage que je ne puisse pas le faire, mais j'ai vraiment aimé l'idée "Default"! Merci beaucoup! –

0

Avez-vous regardé stringsTable? Vous pourriez être en mesure d'utiliser cela pour votre but. Consultez également this documentation

Ce que vous pouvez certainement faire, est de définir les valeurs par défaut lorsque l'application est lancée pour la première fois (ou lorsque les paramètres régionaux, d'ailleurs).

+0

Traduction des « unités métriques » à l'aide stringsTable était facile, mais changer La valeur par défaut basée sur les paramètres régionaux ne l'est pas. Je pourrais le régler à la main, mais cela conduirait à un bug mineur lorsque l'utilisateur ouvre les paramètres AVANT d'ouvrir mon application pour la première fois (je l'ai fait avec Nike + iPod quand j'ai apporté mon iPod). –

+0

Quoi où vos problèmes, exactement? Ne pouvez-vous pas utiliser le fait que les chaînes sont dépendantes des paramètres régionaux pour contrôler d'autres paramètres autres que les chaînes? –

+0

J'ai un paramètre nommé "Unité métrique", un interrupteur ON/OFF. Lorsque "ON", l'application utilisera km, kg, etc. Lorsque "OFF", feets, lbl, etc. Je veux le faire "ON" par défaut sur les pays qui utilisent le système métrique. –

Questions connexes