Après la mise à jour vers la suggestion iOS 13 (email, numéro de téléphone, prénom…) pour UITextField n'apparaissent pas au-dessus du clavier

11

Après la mise à jour de l'appareil vers la suggestion d'entrée iOS 13 pour inputField (UITextField). Comme l'e-mail, le numéro de téléphone, le prénom, le nom de famille n'apparaissent plus au-dessus du clavier. La première image iOS 12.4.1 a suggéré un e-mail, la deuxième image iOS 13.1.2 n'a aucune suggestion. La même application de démonstration est construite avec xCode version 11.0 (11A419c) sur iPhone 7 iOS 12.4.1 (première image, fonctionne comme prévu). iPhone 7 iOS 13.1.2 (deuxième image, aucune suggestion au-dessus du clavier) J'ai testé en ajoutant textContentType dans le storyboard et en ajoutant directement la ligne suivante dans le code

email.textContentType = .emailAddress

Sur iOS 12.4.1, la conversion fonctionne comme prévu

et

iOS 13.1.2 n'affiche pas de suggestion

Stefan Simic
la source
Version Xcode?
Lal Krishna

Réponses:

11

Donc, pour iOS 13 (ou supérieur), j'ai remarqué que la définition des propriétés suivantes permet à l'iPhone de vous suggérer toutes les données:

Pour le courrier électronique, assurez-vous que ces trois propriétés sont définies:

 emailField.autocorrectionType = .yes
 emailField.textContentType = .emailAddress
 emailField.keyboardType = .emailAddress

Pour le prénom et le nom:

firstNameField.autocorrectionType = .yes
firstNameField.textContentType = .givenName
firstNameField.keyboardType = .namePhonePad

lastNameField.autocorrectionType = .yes
lastNameField.textContentType = .familyName
lastNameField.keyboardType = .namePhonePad

Pour le numéro de téléphone, c'est un peu délicat:

phoneField.autocorrectionType = .yes
phoneField.textContentType = .telephoneNumber
phoneField.keyboardType = .numbersAndPunctuation

Assurez-vous également que l' option Prédictif dans les paramètres du clavier est activée . Si cela ne fonctionne pas immédiatement, éteignez-le, attendez quelques secondes, puis rallumez-le et boum, cela fonctionnera à nouveau.

J'espère que cela aide!

Sudhanshu Vohra
la source
Pour les noms et les numéros de téléphone, vous pouvez définir "keyboardType" sur ".namePhonePad"
Neil