Charger des menu déroulants popup

2»

Réponses

  • muqaddarmuqaddar Administrateur
    22:02 modifié #32
    Je sèche encore.  :-\

    J'ai bien un fichier dictionnaire plist qui contient mes dictionnaires de paysId et Bool.

    J'initialise dans le init :

    <br />                       NSMutableDictionary *paysDict = [NSMutableDictionary dictionaryWithContentsOfFile: paysPrefsFile];<br />                        [paysDict setObject: NSLocalizedStringFromTable([paysDict objectForKey:@&quot;paysId&quot;], nil, @&quot;Countries&quot;) forKey:@&quot;paysName&quot;];<br />                  paysArray = [[NSMutableArray alloc] init];
    


    Je fais un setObject car le paysId et le drapeau ne font qu'un, ùais il faut que je rajoute la clé paysName dans le dico.
    Seulement, je ne vois aucune méthode pour remplir le paysArray avec le dico. ???
    Avant je chargeai directement le array à  partir du fichier mais comme le dictionnaire doit être modifié...
  • muqaddarmuqaddar Administrateur
    novembre 2004 modifié #33
    Bon, je fais mon devoir de classe comme me l'a demandé Renaud qui m'a aidé.

    Pour contruire mon tableau localisé, j'ai utilisé un tableau à  dictionnaires avec 2 clés ds les prefs que j'ai étoffé avec une clé supplémentaire ds le init de mon appli. Cette clé correspond au terme localisé. Celui-ci est dans un fichier strings composé de l'id et du nom traduit.

    NSEnumerator sert à  balayer le premier tableau, cad les objets dictionnaires. Je recrée un dico temporaire à  l'intérieur en ajoutant la fameuse clé paysName et en transformant ma clé paysId en image NSImage.
    Ensuite, je recontruis le tableau final en ajoutant les dico.

    Ce qui donne :

    NSArray* paysPrefsArray = [[NSMutableArray alloc] initWithContentsOfFile: paysPrefsFile];<br />                 paysArray = [[NSMutableArray alloc] init];<br /><br />                  NSEnumerator *enumerator = [paysPrefsArray objectEnumerator];<br />                     NSDictionary* dict;<br />                       while (dict = [enumerator nextObject]) {<br />                          NSMutableDictionary *tempDict = [NSMutableDictionary dictionary];<br />                         [tempDict setObject: [dict objectForKey:@&quot;paysBool&quot;] forKey:@&quot;paysBool&quot;];<br />                             NSImage* image = [NSImage imageNamed:[dict objectForKey:@&quot;paysId&quot;]]; <br />                           if (image) [tempDict setObject:image forKey:@&quot;paysId&quot;];<br />                         [tempDict setObject: NSLocalizedStringFromTable([dict objectForKey:@&quot;paysId&quot;], @&quot;Countries&quot;, nil) forKey:@&quot;paysName&quot;];<br />                              [paysArray addObject: tempDict];
    


    Voilà , le but était de ne pas stocker la traduction des pays ds le fichier prefs mais ds la laisser ds le bundle. Ne stocker que l'id du pays et le booléen.
    renaud aurait préféré que j'enregsitre uniquement les id des pays activés ds les prefs, donc pas de booléens. C'est une autre méthode préférable p-e.

    Voilà , si ça peut aider quelqu'un un jour...
  • muqaddarmuqaddar Administrateur
    22:02 modifié #34
    Ah, encore une chose.

    Ce tableau est un tableau stocké ds la fenetre des préférences.
    Qui peut me dire quel est le réel intérêt dans mon cas d'utiliser :
    [NSUserDefaults standardUserDefaults] et tout ce qui s'en suit comme la sauvegarde avec une clé de mon tableau dans "prefs" ? Il me semble préférable dans ce cas de simplement faire un système de sauvegarde (ds App support est le fichier plist) de mon tableau, comme si ce tableau était géré ds l'application et non ds la fentre prefs. Non ?
  • ClicCoolClicCool Membre
    22:02 modifié #35
    dans 1100729362:

    Qui peut me dire quel est le réel intérêt dans mon cas d'utiliser :
    [NSUserDefaults standardUserDefaults] et tout ce qui s'en suit comme la sauvegarde avec une clé de mon tableau dans "prefs" ? Il me semble préférable dans ce cas de simplement faire un système de sauvegarde (ds App support est le fichier plist) de mon tableau, comme si ce tableau était géré ds l'application et non ds la fentre prefs. Non ?


    Oulala, j'en ai de la lecture en retard :(

    Si ton tableau est construit pour l'appli et doit rester immuable quelque soit l'utilisateur alors tu peux utiliser App support.

    Si par contre tu veux permettre à  l'utilisateur de trier-choisir les pays, sa place est dans les user-defaults qui permet une config par utilisateur ...

    :)
  • muqaddarmuqaddar Administrateur
    22:02 modifié #36
    C'est bizarre pourtant, j'avais l'impression qu'il y a avait un dossier App Support par User... puisqu'il est dans Library du dossier User.
  • mpergandmpergand Membre
    22:02 modifié #37
    Pour tout ce qui est global à  l'appli tu peut utiliser /Library/Application Support
    et pour tout ce qui est spécifique à  un utilisateur ~/Library/Application Support
Connectez-vous ou Inscrivez-vous pour répondre.