2010-09-19 6 views
6

Il y a deux champs de texte différents dans mes applications et je mets la propriété .delegate des deux à: self. Maintenant, j'ai implémenté différentes méthodes à partir du protocole uitextfielddelegate mais je veux être capable de contrôler les deux champs de texte individuellement. Par exemple je veux que le premier champ de texte fasse quelque chose de différent quand l'édition commence que le deuxième champ de texte ... Est la seule solution à ce problème pour placer l'assigner un délégué différent ou est-il un moyen de faire ceci avec les deux textfield ayant le même délégué qui leur est affecté? J'espère que ma question est compréhensible je l'ai essayé pour expliquer la meilleure façon que je pouvais ..... merci d'avance!iphone: uitextfield, plusieurs champs de texte avec le même délégué?

Répondre

7

Définissez un tag sur le champ de texte lors de l'initialisation, puis vérifiez l'objet UITextField qui est passé dans tag de la méthode déléguée, vous serez en mesure de faire une distinction entre les deux textfields:

#define FIELD_ONE_TAG 1 
#define FIELD_TWO_TAG 2 

UITextField *textFieldOne = ... 
textFieldOne.tag = FIELD_ONE_TAG; 
... 
UITextField *textFieldTwo = ... 
textFieldTwo.tag = FIELD_TWO_TAG; 


- (void)textFieldDidBeginEditing:(UITextField *)textField { 
    if(textField.tag == FIELD_ONE_TAG) { //field one 
    } else {//field two 

    } 
} 
7
UITextField *textFieldOne=..... 

UITextField *textFieldTwo=.... 
- (void)textFieldDidBeginEditing:(UITextField *)textField { 
if(textField == textFieldOne) 
{ // field one code 
}else{ 
//field two code 
} 
} 

ont deux références des vues de texte insérées et vous pouvez les comparer aux méthodes déléguées. Pas vraiment nécessaire avec les étiquettes

Questions connexes