Aller au contenu

Photo

choisir un TextField dont le nom est la valeur d'une variable ??


  • Please log in to reply
7 replies to this topic

#1 horus59153

horus59153

    iPuP apprenti

  • Members
  • 51 Messages :

Posté 14 septembre 2012 - 16:16

Bonjour j'aimerais savoir si il est possible de choisir un TextField en fonction d'une valeur de ' i ' qui varie je m'explique,

J'ai beaucoup de Textfield (h11, h12, h 21, h 22, h31, h32, h41, h42 …) et j'aimerais savoir si il est possible d'appliquer un code en fonction de la valeur de ' i ' par exemple si i=5 alors le clavier du TextField h15 se désactiveras lorsque le bouton d'actions sera utilisé

dans ce style la :

- (IBAction)clavieroff:(id)sender {
    
    for(i=0;i<31;i++){
        NSString *nom;
        nom = [NSString stringWithFormat: @"h1%d",i];
        [nom resignFirstResponder];       
    }  
}
Merci d'avance de vos réponse :)

Ce message a été modifié par horus59153 - 18 septembre 2012 - 13:08.

Horus,

#2 horus59153

horus59153

    iPuP apprenti

  • Members
  • 51 Messages :

Posté 15 septembre 2012 - 15:45

Aucune idée ? :/ car j'ai 31 * 4 textflied x) il n'y aurait aucun moyen d'alléger le code ?
Horus,

#3 horus59153

horus59153

    iPuP apprenti

  • Members
  • 51 Messages :

Posté 18 septembre 2012 - 12:55

un petit up car je ne trouve vraiment pas :/
Horus,

#4 CoinCoin

CoinCoin

    iPuP confirmé

  • Lecteur
  • 439 Messages :

Posté 18 septembre 2012 - 13:16

Salut,

Alors je n'ai pas forcément tout compris.

Quand c'est que tu veux appeler la méthode "clavierOff" ?
Quand l'utilisateur clique sur un bouton ?

Je n'arrive pas à saisir comment est ta vue.

Tu peux un peu plus expliquer ce que tu souhaites, ça ne doit pas être trop compliqué

#5 R40ul

R40ul

    iPuP apprenti

  • Members
  • 96 Messages :

Posté 19 septembre 2012 - 12:55

Si tu as un @synthesize sur tes objets, tu peux faire un truc comme ça :

NSString *buttonName = [NSString stringWithFormat:@"button%i", i];
SEL buttonSelector =  NSSelectorFromString(buttonName);
UIButton *button = objc_msgSend(self, buttonSelector);
[button doSomethingWithThatButton];
Je le fais dans un de mes projets, et ça marche très bien.
Note : j'utilise msgSend parceque performSelector génère un warning, et que j'aime pas les warnings :P

Ce message a été modifié par R40ul - 19 septembre 2012 - 13:25.


#6 horus59153

horus59153

    iPuP apprenti

  • Members
  • 51 Messages :

Posté 25 septembre 2012 - 22:15

Ah merci !!! je teste sa des demain matin :) j'avais pas vu vos réponse avec ma semaine de cours plus trop le temps de dev :/

sinon pour le clavier j'ai réussi j'utilise :

- (IBAction)nomdubouton:(id)sender {
    [nomdutextfield resignFirstResponder];
}

Horus,

#7 horus59153

horus59153

    iPuP apprenti

  • Members
  • 51 Messages :

Posté 26 septembre 2012 - 07:13

Par contre je n'ai pas de @synthesize sur mes TextField comment je peux faire du coup ? et ce sont des TextField qui doivent être sélectionné pour récupérer leur contenue il s'appelle : h11, h12, h21, h22, h31, h32 etc etc si tu à une idée hésite pas ^^
Horus,

#8 iMobile

iMobile

    iPuP apprenti

  • Members
  • 82 Messages :

Posté 02 octobre 2012 - 14:51

Bonjour,

Si ta variable d'instance est un objet :
#include <objc/runtime.h>

id ObjCGetInstanceVariable(id obj, const char *varName)
{
    Ivar ivar = class_getInstanceVariable([obj class], varName);
    return object_getIvar(obj, ivar);
}
Pour les autres types je te laisse voir la fonction object_getInstanceVariable.

Mais heu, franchement très étonnant que tu doives en arriver là ...
Il me semble que tu as un problème de conception dans ton application pour avoir besoin de faire appel à l'introspection, pour retrouver le textfield utilisé ...




0 utilisateur(s) en train de lire ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)