Wie kann ich erkennen, wenn ein Benutzer während der Bearbeitung von UITextField die Tastaturtaste "Zurück" gedrückt hat? Ich muss dies tun, um die Tastatur zu schließen, wenn der Benutzer die "Zurück" -Taste gedrückt hat.
Vielen Dank.
Wie kann ich erkennen, wenn ein Benutzer während der Bearbeitung von UITextField die Tastaturtaste "Zurück" gedrückt hat? Ich muss dies tun, um die Tastatur zu schließen, wenn der Benutzer die "Zurück" -Taste gedrückt hat.
Vielen Dank.
Antworten:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return NO;
}
Vergessen Sie nicht, den Delegaten in das Storyboard zu setzen ...
self.yourTextField.delegate = self;
. Auch mehrere Textfelder funktionieren.
Eine Delegation ist nicht erforderlich. Hier ist ein Einzeiler:
- (void)viewDidLoad {
[textField addTarget:textField
action:@selector(resignFirstResponder)
forControlEvents:UIControlEventEditingDidEndOnExit];
}
Leider können Sie dies nicht direkt in Ihrem Storyboard tun (Sie können keine Aktionen mit dem Steuerelement verbinden, das sie in Storyboard ausgibt), aber Sie können dies über eine Zwischenaktion tun.
UIControlEventEditingDidEndOnExit
Ereignis nur gesendet wird, wenn die textFieldShouldReturn:
Delegatmethode YES zurückgibt (ohne das Textfeld vorher zu verlassen).
YES
für diese Methode zurückkehren.
SWIFT 3.0
override open func viewDidLoad() {
super.viewDidLoad()
textField.addTarget(self, action: #selector(enterPressed), for: .editingDidEndOnExit)
}
Geben Sie in der Funktion enterPressed () alle Verhaltensweisen ein, nach denen Sie suchen
func enterPressed(){
//do something with typed text if needed
textField.resignFirstResponder()
}
Sie können dies jetzt als Storyboard mit dem gesendeten Ereignis 'Did End On Exit' tun.
In Ihrer View Controller-Unterklasse:
@IBAction func textFieldDidEndOnExit(textField: UITextField) {
textField.resignFirstResponder()
}
In Ihrem Storyboard für das gewünschte Textfeld:
- (BOOL)textFieldShouldReturn:(UITextField *)txtField
{
[txtField resignFirstResponder];
return NO;
}
Wenn Sie auf die Eingabetaste klicken, wird diese Delegatmethode aufgerufen. Sie können die Rückgabeschaltfläche von dieser Delegatmethode erfassen.