1

Ich baue einen Pin-Eintrag ViewController sehr ähnlich dem iOS, den Sie sehen, wenn Sie auf Einstellungen-> TouchID gehen und es fordert Sie zur PIN.Wie präsentiert man die iOS-Tastatur zusammen mit der modalen Darstellung eines ViewControllers?

Ich versuche, sein Verhalten der Präsentation der iOS-Tastatur zusammen mit (gleichzeitig) der modalen Darstellung des Stifteintrags ViewController zu imitieren. Mir ist aufgefallen, dass auch andere Anwendungen wie Venmo dies erreichen können.

Wie kann ich dieses Verhalten erreichen? Meine pinEntryView ist ein textField. Ich habe versucht, ihm die Meldung 'answerFirstResponder' in viewDidAppear zu senden, und das scheint zu funktionieren; Es wird jedoch die iOS-Tastatur angezeigt, nachdem die modale Darstellung von ViewController beendet wurde. Ich möchte, dass die Präsentation zur gleichen Zeit stattfindet, um das Gefühl zu vermitteln, dass die iOS-Tastatur tatsächlich in den ViewController integriert ist.

Ich habe versucht, die Meldungen von findFirstResponder in viewWillAppear, viewWillLayoutSubviews ebenfalls zu senden, aber das sind keine stabilen Lösungen. Manchmal wird die Tastatur angezeigt und manchmal nicht. Gibt es das überhaupt, um das zu tun?

Antwort

0

Ich habe den Test gemacht, indem ich in der viewDidLoad den Befehl findFirstResponder gesetzt habe und es funktioniert gut. Ich habe einen Knopf, der die modal aufruft, und das modale hat den nächsten Code:

override func viewDidLoad() { 
 
     super.viewDidLoad() 
 
     self.textField.becomeFirstResponder() 
 
}

Es hat kein unerwartetes Verhalten.

+0

Versuchen Sie es ein paar Mal testen Sie die Tastatur wird manchmal angezeigt und manchmal nicht angezeigt. Wie hast du das getestet? – AyBayBay

+0

Ich hoffe das hilft dir. Übrigens teste ich im physischen Gerät, nicht im Simulator. [link] (https://dl.dropboxusercontent.com/u/28337816/TestFirstResponder.zip) –

+0

Sie können die Tastatur ständig wie dargestellt sehen? – AyBayBay

0

Ich glaube, ich hatte dieses Problem vor, und es hat eine recht interessante Lösung. Was Sie tun möchten, ist becomeFirstResponder in viewWillAppear anrufen, bevor Sie Super aufrufen.

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

Dann, wenn Sie Super rufen die Ersthelfer bereits gesetzt ist, und nimmt dann iOS diesen Zustand und enthält die Tastatur Animation im Aussehen Transaktion angezeigt.

Hoffentlich kann Ihnen das auch helfen.

Verwandte Themen