2010-08-26 21 views
120

Al hacer clic en un campo de texto, aparece el teclado. ¿Cómo lo oculto cuando el usuario presiona la tecla de retorno?¿Cómo ocultar el teclado cuando presiono la tecla de retorno en un UITextField?

+12

Lo bueno de desbordamiento de pila es que muchos ya preguntas han sido contestadas, especialmente los simples. Por lo tanto, por favor, busque las respuestas PRIMERO, antes de preguntar. Ver, es simple: http://stackoverflow.com/search?q=iphone+hide+keyboard – Felixyz

+0

Esta es una subclase de UITextfield que cambia dinámicamente el UIReturnKey de acuerdo con la condición de texto/cadena: https://github.com/ codeinteractiveapps/OBReturnKeyTextField – CodeInteractive

Respuesta

246

En primer lugar hacer su delegado archivo para UITextField y luego añadir este método para su código ..

-(BOOL) textFieldShouldReturn:(UITextField *)textField{ 

    [textField resignFirstResponder]; 
    return YES; 
} 
+1

Curioso, ¿por qué no es necesario? Por lo general, verá una advertencia en este caso. – pixelfreak

+7

si hace que su archivo delegue usando Interface Builder entonces no es necesario en el archivo .h ... – Saurabh

+1

agregando en el archivo .h y establezca el delegado en viewdidload [yourTextField setDelegate: self]; lo completará! – Umitk

1

conjunto delegado de UITextField, y más de paseo, textFieldShouldReturn método, en el que el método que acabamos de escribir siguiendo dos líneas:

[textField resignFirstResponder]; 
return YES; 

eso es todo. Antes de escribir un código, no olvide configurar el delegado de un UITextField y establecer el tipo de clave de retorno en "Hecho" desde la ventana de propiedades. (Comando + shift + I).

57

En viewDidLoad declarar:

[yourTextField setDelegate:self];

Entonces, incluyen la anulación del método delegado :

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

+1 para el recordatorio 'setDelegate:'. Definitivamente lo había olvidado y el código no funcionaba previamente. – piperchester

+2

¿No debería ser esto textField, en lugar de suTextField cuando se está pasando? –

+0

es una forma de decir que declare que el delegado de su campo de texto –

1

Probar este ,

[textField setDelegate: self]; 

Luego, en el método delegado textField

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

que no es la mejor práctica para hacer eso. – orafaelreis

+0

necesita UITextFieldDelegate en la definición de interfaz. –

+0

@AlpAltunel: Gracias por el comentario, fue hace 4 años. –

11

en Swift hacen de esta manera: En primer lugar
en su ViewController implementar esta UITextFieldDelegate Por ejemplo.

class MyViewController: UIViewController, UITextFieldDelegate { 
.... 
} 

Ahora agregar un delegado a un TextField en el que desea ocultar el teclado cuando el retorno se toca, ya sea en viewDidLoad método como el de abajo o en el que se inicializarlo. Por ej.

override func viewDidLoad() { 

    super.viewDidLoad() 
    myTextField.delegate = self 
} 

Ahora agregue este método.

func textFieldShouldReturn(textField: UITextField) -> Bool { 

    textField.resignFirstResponder() 
    return true 
} 
+1

El segundo paso no es necesario si configura el delegado en IB. –

8

probar este en Swift,

Paso 1: Conjunto delegado como auto a su textField

textField.delegate = self 

Paso 2: Añadir esta UITextFieldDelegate por debajo de su declaración de la clase,

extension YourClassName: UITextFieldDelegate { 
    func textFieldShouldReturn(textField: UITextField) -> Bool { 
     textField.resignFirstResponder() 
     return true 
    } 
} 
0
[textField resignFirstResponder]; 

Utilice esta

1

Puede conectar "Acción Primaria Se activa" (clic derecho en UITextField) con un IBAction y se puede renunciar primer nivel de respuesta (sin delegación).Ejemplo (Swift 4):

@IBAction func textFieldPrimaryAction(_ sender: UITextField) { 
    sender.resignFirstResponder() 
    ... 
} 
+0

Forma preferida si usa guiones gráficos. – lal

Cuestiones relacionadas