2017-08-17 2 views
0

Ich habe einen UIViewController mit einem UITextView und einem UITextField.So schalten Sie Erstbearbeiter zwischen Textfeldern und Ansichten um

Die UITextField wird ein Ersthelfer bei der Ansicht Belastung:

override func viewDidAppear(_ animated: Bool) { 
    super.viewDidAppear(animated) 
    textField.becomeFirstResponder() 
} 

Das Problem ist, dass ich die UITextView nicht einfach tippen und Bearbeitung beginnen kann. Meine Vermutung ist, dass ich zuerst den Ersthelfer aus dem UITextField zurücktreten muss.

Ich versuchte die UITextFieldDelegate-Methoden zum Beenden der Bearbeitung und Hinzufügen der textField.resignFirstResponder()-Methode, aber diese Methode wird überhaupt nicht ausgelöst (basierend auf einer Druckanweisung nicht angezeigt).

Hier ist ein Beispiel dieses Ansatzes:

func textFieldShouldEndEditing(_ textField: UITextField) -> Bool { 
    textField.resignFirstResponder() 
    return true 
} 

Ich mag würde letztlich zwischen diesen beiden Textansichten wechseln, während nie die Tastatur zu entlassen. Der First-Responder-Status würde also einfach hin- und hergereicht werden. Aber ich kann anscheinend keine Methoden finden, die mein Feuer im Wesentlichen auf eine Methode beim Klopfen ansprechen lassen.

Weiß jemand, welche Methoden diese Funktionalität erlauben würde?

+0

FYI - Es gibt keinen Grund 'resignFirstResponder' in der' textFieldShouldEndEditing' Methode zu nennen, weil 'textFieldShouldEndEditing' wird nur aufgerufen werden, wenn das Textfeld sich selbst abgibt als Ersthelfer. – rmaddy

Antwort

0

Aufruf resignFirstResponder innerhalb textFieldShouldEndEditing hat keine Wirkung, da die Funktion nur aufgerufen wird, wenn der textField im Begriff ist, First Responder zurückzutreten. Sie sollten entweder resignFirstResponder innerhalb textFieldShouldReturn verwenden, wenn Sie die Bearbeitung beenden möchten, indem Sie auf den Return-Schlüssel tippen oder die UIViewController s touchesBegan Methode überschreiben, wenn Sie den ersten Responder beenden möchten, wenn der Benutzer außerhalb Ihres `textFields berührt.

Der Ersthelfer Rücktritt auf die Return-Taste Methode treffen:

func textFieldShouldReturn(_ textField: UITextField) -> Bool { 
    textField.resignFirstResponder() 
    return true  
} 
0

, wenn Sie iOS-System Tastatur auf Simulator manchmal nicht erscheint ..., wenn Sie Text Feld oder Ansicht wechseln Tastatur auf realen verschwinden wont Gerät .. wenn Sie auf Simulator Uncheck Connect Hardware-Tastatur versuchen wollen von Simulator Hardware-Option ... Simulator Setting Screenshot

Verwandte Themen