Tengo un botón y un campo de texto en mi vista. cuando hago clic en el campo de texto, aparece un teclado y puedo escribir en el campo de texto y también puedo descartar el teclado haciendo clic en el botón agregando:
[self.inputText resignFirstResponder];
Ahora quiero habilitar la tecla de retorno del teclado. cuando presione en el teclado, el teclado desaparecerá y algo sucederá. ¿Cómo puedo hacer esto?
ios
objective-c
iphone
swift
uitextfield
razibdeb
fuente
fuente
Respuestas:
Asegúrese de que "self" se suscriba
UITextFieldDelegate
e inicialice inputText con:self.inputText.delegate = self;
Agrega el siguiente método a "self":
- (BOOL)textFieldShouldReturn:(UITextField *)textField { if (textField == self.inputText) { [textField resignFirstResponder]; return NO; } return YES; }
O en Swift:
func textFieldShouldReturn(_ textField: UITextField) -> Bool { if textField == inputText { textField.resignFirstResponder() return false } return true }
fuente
Con estilo de extensión en swift 3.0
Primero, configure el delegado para su campo de texto.
override func viewDidLoad() { super.viewDidLoad() self.inputText.delegate = self }
Luego se ajusta a
UITextFieldDelegate
la extensión de su controlador de vistaextension YourViewController: UITextFieldDelegate { func textFieldShouldReturn(_ textField: UITextField) -> Bool { if textField == inputText { textField.resignFirstResponder() return false } return true } }
fuente
Si bien las otras respuestas funcionan correctamente, prefiero hacer lo siguiente:
En viewDidLoad (), agregue
self.textField.addTarget(self, action: #selector(onReturn), for: UIControl.Event.editingDidEndOnExit)
y definir la función
@IBAction func onReturn() { self.textField.resignFirstResponder() // do whatever you want... }
fuente
Utilice el mecanismo Target-Action UIKit para el evento UIE "primaryActionTriggered" enviado desde UITextField cuando se presiona un botón de terminado del teclado.
textField.addTarget(self, action: Selector("actionMethodName"), for: .primaryActionTriggered)
fuente