2012-04-23 23 views
7

Quiero hacer desaparecer el teclado cuando el usuario hace clic en el botón de "retorno", me dijeron utilizartextFieldShouldReturn no se llama

-(BOOL)textFieldShouldReturn:(UITextField *)textField { 
    [tf resignFirstResponder]; 
    return YES; 
} 

pero no pasa nada cuando hago clic en el botón de "retorno", el método ni siquiera está siendo llamado. Estoy haciendo esto en

@interface gameOverMenu : UIView 

no en ViewController. Tampoco uso el constructor de interfaz. ¿Que debería hacer?

+0

¿Ha establecido el delegado UITextField en el objeto que contiene el método? – MarkPowell

+0

¿Ha designado su controlador de vista a ? – lukecampbell

Respuesta

26

Usted necesita asegurarse de que implemente la UITextFieldDelegate y fija su delegado UITextField a uno mismo. En su archivo .h:

@interface gameOverMenu : UIView <UITextFieldDelegate> 

Y en algún lugar de su archivo .m (viewDidLoad: tal vez):

self.yourTextField.delegate = self; 

Ahora su - (BOOL) textFieldShouldReturn: Método textField (UITextField *) debe ser llamado .

+0

gracias por ayudar a compañero! – Alexander

+0

no hay problema. simplemente fyi ya que veo que eres nuevo, es una práctica común marcar mi respuesta como correcta si es la que mejor te ayudó. el sistema de recompensa :) – nicholjs

+0

Vote Up requiere 15 reputación – Alexander

0

Asegúrese de que ha establecido la clase padre (cualquiera que sea) como UITextFieldDelegate