[Résolu] NSLocale et NSUserDefault

GramboGrambo Membre
octobre 2013 modifié dans Objective-C, Swift, C, C++ #1

Bonjour,


 


 


Je définis dans un NSUserDefault une langue spécifique. Cela fonctionne comme je le souhaite. L'interface est bien modifiée en conséquence après redémarrage de l'application. 



[userDefaults setObject:[NSArray arrayWithObjects:@la,nil] forKey:@AppleLanguages];

​Je recontre un problème lorsque je veux recharger la liste des langues du système dans l'ordre de préférence de l'utilisateur.


Je pensais pour cela utiliser [NSLocale preferredLanguages], mais à  ma grande surprise elle ne contient que le langage que j'ai défini ci-dessus (la) et non les langages définis dans "Préférences Système".


Quelqu'un aurait-il une idée comment les récupérer?


Réponses

  • mpergandmpergand Membre
    octobre 2013 modifié #2

    Dans les UserDefaults:


     


     


    NSLog(@%@",[[NSUserDefaults standardUserDefaults] objectForKey:@AppleLanguages]);


     


    [EDIT]


    mais tu le modifies avec setObject:[NSArray arrayWithObjects:@la,nil] forKey:@AppleLanguages];


     


    donc ça marche pas !


     


    Peut-être en créant un nouveau userdefaults:


    NSUserDefaults* newUserDefaults=[[NSUserDefaults alloc] init];
    NSLog(@%@",[newUserDefaults objectForKey:@AppleLanguages]);

    pas testé ...


  • Je viens de tester, newUserDefault prend également la valeur "la"


    Il faut trouver comment récupérer la liste du système.

  • Bon, finalement, j'ai trouvé. Pour récupérer les langues initiales des préférences système, il suffit de supprimer la clef AppleLanguage de userDefault



    [userDefaults removeObjectForKey:@AppleLanguages];
Connectez-vous ou Inscrivez-vous pour répondre.