2010-11-26 10 views
13

Estoy usando -(void)textFieldDidBeginEditing:(UITextField *)sender esta función en mi aplicación. esto no se llama cuando selecciono el campo de texto. Aquí está el código ...- (void) textFieldDidBeginEditing: (UITextField *) remitente ... ¿esta función no se llama cuando selecciono el campo de texto?

-(void)textFieldDidBeginEditing:(UITextField *)sender{ 
    if([sender isEqual:txtName])//txtName is the IBOutlet of the UITextField 
    { 
     NSLog(@"Name"); 
    } 
    else{ 
     NSLog(@"NO_Name"); 
    } 
} 
+5

Usted pidió 10 preguntas ya y aceptado ninguna respuesta hasta ahora ... por favor, acepte respuestas a sus preguntas para que la gente se sentirá más inclinado a ayudarle. – DarkDust

Respuesta

26

¿Ha definido delegado de la instancia del controlador UITextField de vista actual como esto:

textField.delegate = self; (auto significa la instancia en la que se reemplaza la devolución de llamada textFieldDidBeginEditing)

+0

Su trabajo Sanniv ..., gracias por tu valioso comentario – Chinju

4

Debe incluir UITextFieldDelegate en el archivo .h

@interface yourViewController : UIViewController <UITextFieldDelegate> 
1

Debe incluir UITextFieldDelegate en su .h archivo, y también añadir YourTextField.delegate = self

11

Asegúrese de completar 2 sencillos pasos

1 - Poner en práctica el delegado UITextFieldDelegate

@interface yourViewController : UIViewController <UITextFieldDelegate>

2 - Establecer el delegado

yourTextField.delegate = self

Si tiene muchos campos de texto en su vista, puede establecer delegado para todos los campos de texto como éste

for (id subView in self.view.subviews) 
    { 
     if ([subView isKindOfClass:[UITextField class]]) { 
      [subView setDelegate:self]; 
     } 
    } 
Cuestiones relacionadas