2010-09-19 23 views
6

hay dos campos de texto diferentes en mis aplicaciones y configuré la propiedad .delegate de ambos en: self. Ahora implementé diferentes métodos del protocolo uitextfielddelegate pero quiero poder controlar los dos campos de texto individualmente. Por ejemplo, quiero que el primer campo de texto haga algo diferente cuando se inicia la edición que el segundo campo de texto ... ¿Es la única solución a este problema para configurar la asignación de un delegado diferente o hay una manera de hacerlo con ambos campos de texto teniendo el mismo delegado asignado a ellos? Espero que mi pregunta sea comprensible. Lo intenté para explicar de la mejor manera que pude ..... ¡gracias de antemano!iphone: uitextfield, campos de texto múltiples con el mismo delegado?

Respuesta

7

Conjunto un tag en el campo de texto en la inicialización, a continuación, comprobar el objeto UITextField que se pasa a la lista de método delegado tag, entonces usted será capaz de hacer una diferenciación entre los dos campos de texto:

#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 
} 
} 

tiene dos referencias de las vistas de texto insertadas y puede compararlas en los métodos de delegado. No es necesario con las etiquetas

Cuestiones relacionadas