Come posso rilevare quando un utente ha premuto il pulsante della tastiera "Invio" durante la modifica di UITextField? Devo farlo per chiudere la tastiera quando l'utente preme il pulsante "Invio".
Grazie.
Come posso rilevare quando un utente ha premuto il pulsante della tastiera "Invio" durante la modifica di UITextField? Devo farlo per chiudere la tastiera quando l'utente preme il pulsante "Invio".
Grazie.
Risposte:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return NO;
}
Non dimenticare di impostare il delegato nello storyboard ...
self.yourTextField.delegate = self;
. Anche più campi di testo funzionano.
La delega non è richiesta, ecco una battuta:
- (void)viewDidLoad {
[textField addTarget:textField
action:@selector(resignFirstResponder)
forControlEvents:UIControlEventEditingDidEndOnExit];
}
Purtroppo non puoi farlo direttamente nel tuo Storyboard (non puoi collegare le azioni al controllo che le emette in Storyboard), ma potresti farlo tramite un'azione intermedia.
UIControlEventEditingDidEndOnExit
evento viene inviato solo se il textFieldShouldReturn:
metodo delegato restituisce SÌ (senza rinunciare preventivamente al campo di testo).
YES
per questo metodo.
SWIFT 3.0
override open func viewDidLoad() {
super.viewDidLoad()
textField.addTarget(self, action: #selector(enterPressed), for: .editingDidEndOnExit)
}
nella funzione enterPressed () inserisci tutti i comportamenti che stai cercando
func enterPressed(){
//do something with typed text if needed
textField.resignFirstResponder()
}
Ora puoi farlo nello storyboard usando l'evento inviato "Fine all'uscita".
Nella sottoclasse del controller di visualizzazione:
@IBAction func textFieldDidEndOnExit(textField: UITextField) {
textField.resignFirstResponder()
}
Nel tuo storyboard per il campo di testo desiderato:
- (BOOL)textFieldShouldReturn:(UITextField *)txtField
{
[txtField resignFirstResponder];
return NO;
}
Quando si fa clic sul pulsante Invio, viene chiamato questo metodo delegato. È possibile acquisire il pulsante di ritorno da questo metodo delegato.