2012-06-09 24 views

Respuesta

150

Implementar el método delegado

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.yourIBtextField.delegate = self; 
} 

- (BOOL)textFieldShouldReturn:(UITextField *)textField { 
    [textField resignFirstResponder]; 
    return NO; 
} 
+17

La parte que me faltaba fue añadiendo para la interfaz en el archivo * .h. Una vez que agregué eso, este código funcionó sin problemas. Espero que ayude a alguien más a salir! – proudgeekdad

+7

En esta situación, se requiere . – brooNo

+3

También puede conectar el delegado del guión gráfico (xib), si arrastra la conexión desde textField a la representación de viewController. De esta forma, no tiene que escribir la línea del método viewDidLoad. – Luka

9

UITextView no tiene ningún método que se llama cuando el usuario pulsa la tecla de retorno.

Incluso si desea hacer esto, implemente el método textView: shouldChangeTextInRange: replacementText: de UITextViewDelegate y en esa comprobación, si el texto de reemplazo es \ n, oculte el teclado.

Puede haber otras formas, pero no conozco ninguna.

Asegúrese de declarar compatibilidad con el protocolo UITextViewDelegate.

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range 
replacementText:(NSString *)text { 

    if([text isEqualToString:@"\n"]) { 
     [textView resignFirstResponder]; 
     return NO; 
    } 
    return YES; 
} 

Espero que ayude mucho.

+0

Esto restablece mis configuraciones ocultas por alguna razón. ¿Alguna idea de por qué? – John

+0

¿me puede dar más detalles, como qué tipo de configuración oculta? –

1

Categoría Marca de UIViewController con el siguiente método

- (void)hideKeyboard 
{ 
    [[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) 
               to:nil 
              from:nil 
             forEvent:nil]; 
} 
Cuestiones relacionadas