A quoi ça sert les tags ?

skensken Membre
07:47 modifié dans Xcode et Developer Tools #1
Bonjour,
J'ai vu la discussion : http://www.objective-cocoa.org/forum/index.php?topic=247.0 et il me semble comprendre que les tags pourraient remplacer utilement les outlets et les connections dans IB quand on en a beaucoup.

Quelqu'un de charitable pourrait-il m'expliquer en pratique comment ça marche ? exemple, je voudrais mettre dans ma fenetre principale 50 NSButton qui seront chacun reliés à  monAction: A la main, je suis obligée d'ajouter dans IB les outlets b0, b1, b2 etc jusqu'à  b50, ensuite je dois faire 50 click Control pour relier les bouton à  l'action. Et dans le code en plus, si je veux mettre mes boutons dans un NSArray je fais [NSArray monArray addObjet : b0 atIndex : 0] et je répète cette ligne 50 fois en changeant l'indice. Il y a sûrement moyen de faire la même chose avec une boucle for, non ? et les tags aident-ils à  celà  justement ?
Merci de vos éclaircissements.
Dommage qu'il n'existe pas une bonne doc sur IB, ça m'éviterais de vous importuner  :o

Réponses

  • cbrandtcbrandt Membre
    07:47 modifié #2
    eh bien avec les tags, tu fais tes 50 control-click dans IB vers ta même action, mais tu ne crées aucun outlet vers les boutons...
    par contre pour chaque bouton tu mets un tag différent: 0, 1, 2, ... 49 par exemple, ou n'importe quoi d'autre.

    ensuite dans ton action, tu testes simplement le tag du sender:
    <br />- (IBAction) monAction: (id) sender<br />{<br />    switch ([sender tag])<br />    {<br />        case 0:<br />            // code pour bouton avec tag 0<br />            break;<br />        case 1:<br />            // code pour bouton avec tag 1<br />            break;<br />        // ajouter tous les autres jusqu&#39;à  49<br />    }<br />}<br />
    


    edit:
    si tu as besoin de 50 boutons, utilise putôt une matrice de boutons...
  • skensken Membre
    07:47 modifié #3
    merci beaucoup cbrandt, c'est hyperclair, et je m'aperçois que je vais pouvoir alléger considérablement mon code... Je n'ai pas encore essayé de me servir des matrices, je verrai ça ce soir (pour l'instant, je suis sur un PC  :(
  • mpergandmpergand Membre
    07:47 modifié #4
    On en parle ICI
  • skensken Membre
    07:47 modifié #5
    C'est justement le lien que je citais dans mon premier message !
Connectez-vous ou Inscrivez-vous pour répondre.