Faire apparaitre le texte de 3 textfileds en un label

Bonjour , j'ai 3 textfileds , et je voudrais que leur texte apparaisse (avec un espace entre chaque) dans un label .

Par exemple :

texte du textfield1 : jaune

texte du textfield2 : rouge

texte du textfield3 : vert



texte du label : jaune rouge vert



J'ai pas trop d'idée pour le faire, Merci d'avance !

Réponses

  • De mémoire : [label setText: [NSString stringWithFormat:@%@ %@ %@, texfield1.texte,texfield2.texte,texfield3.texte];

    Un truc de ce genre-là  quoi.
  • JegnuXJegnuX Membre
    août 2012 modifié #3
    Si ton interface est faite avec un storyboard ou un xib, y'a un moyen assez efficace.



    Tu fait un Outlet Collection depuis l'éditeur d'interface vers ton code, ce sera en fait un NSArray et tu relis tes trois textfield vers cet Array qui s'appelle par exemple "colorTextFields"



    Ensuite ça se fait en une simple ligne :


    <br />
    self.label.text = [[self.colorTextFields valueForKeyPath:@&quot;text&quot;] componentsJoinedByString:@&quot; &quot;];<br />
    




    L'ordre dans lequel tu saisis tes outlet collection indiquera l'ordre dans ton label.
  • AliGatorAliGator Membre, Modérateur
    Concernant l'ordre des composants dans un IBOutletCollection, même si en pratique c'est ce que j'ai remarqué aussi, en théorie il me semble que rien ne le garantit... donc on n'est pas sensés se baser dessus !

    (par contre on peut leur attribuer un tag et générer un NSArray trié d'après le tag pour être sûr de l'ordre. Un peu frustrant étant donné qu'en pratique on sait qu'il est déjà  trié mais rien ne nous le garantit dans le futur si on veut être rigoureux)
  • 'JegnuX' a écrit:


    Si ton interface est faite avec un storyboard ou un xib, y'a un moyen assez efficace.



    Tu fait un Outlet Collection depuis l'éditeur d'interface vers ton code, ce sera en fait un NSArray et tu relis tes trois textfield vers cet Array qui s'appelle par exemple "colorTextFields"



    Ensuite ça se fait en une simple ligne :


    <br />
    self.label.text = [[self.colorTextFields valueForKeyPath:@&quot;text&quot;] componentsJoinedByString:@&quot; &quot;];<br />
    




    L'ordre dans lequel tu saisis tes outlet collection indiquera l'ordre dans ton label.




    Merci , ca fonctionne image/smile.png' class='bbc_emoticon' alt=':)' />
  • CéroceCéroce Membre, Modérateur
    'AliGator' a écrit:


    Concernant l'ordre des composants dans un IBOutletCollection, même si en pratique c'est ce que j'ai remarqué aussi, en théorie il me semble que rien ne le garantit... donc on n'est pas sensés se baser dessus !


    D'après mon expérience, comme c'est un NSArray, on est sûr de l'ordre, par contre, fixer l'ordre dans le XIB est galère. C'est assez mal fichu pour avoir envie de tout déconnecter et tout reconnecter dans le bon ordre.
  • AliGatorAliGator Membre, Modérateur
    @Ceroce : ce que je voulais dire c'est que (malheureusement je ne retrouve pas la doc à  ce sujet, mais il me semblais l'avoir lu dans ce sens) quand tu connectes les éléments de ton XIB à  ton IBOutletCollection, IB ne garantit pas que les éléments dans le NSArray associé sera le même que l'ordre dans lequel tu as fait les connexions (par exemple, quand le runtime effectue les connexions des objets aux IBOutlets et IBOutletCollections il n'est pas garanti qu'il remplisse le NSArray de ton IBOutletCollection dans l'ordre auquel tu t'attends.



    Mais bon c'est ce que j'avais lu dans la doc qui parlait des IBOutletCollections quand ils sont apparus (iOS4 ?) : qu'il ne fallait pas se fier à  l'ordre de construction du NSArray et compter sur le fait que l'ordre serait le même que celui dans lequel on avait fait les connexions dans le XIB. En pratique de ce que j'ai observé, il semble que même si la doc di(sai)t que ce n'est pas garanti, l'ordre semble respecté tout de même.



    Après, de toute façon, c'est sûr que si tu veux changer l'ordre quand tu fais ton XIB, IB n'aide pas car ne propose pas de drag & drop ou truc similaire pour ça, donc faut mieux vider ton IBOutletCollection et le reremplir... mais en même temps si Apple dit que l'ordre dans lequel tu connectes tes éléments dans IB n'influence pas forcément l'ordre des éléments dans ton NSArray, c'est logique qu'alors ils ne proposent pas de réordonner les éléments de ton IBOutletCollection puisque tu n'es pas sensé te baser dessus...
  • CéroceCéroce Membre, Modérateur
    Alors, dans ce cas, les outlets connections me semblent trop contraignantes comparé à  tirer chaque outlet. ça devient un outil inutile.
  • AliGatorAliGator Membre, Modérateur
    Oui c'est pour ça que je ne les utilise pas tant que ça non plus. Ou alors avec les tags.
Connectez-vous ou Inscrivez-vous pour répondre.