web-dev-qa-db-fra.com

Comment puis-je obtenir la propriété textContentType d'UITextField pour faire quoi que ce soit?

Voici la documentation sur la propriété textContentType d'UITextField :

Utilisez cette propriété pour donner au clavier et aux informations système la signification sémantique attendue du contenu saisi par les utilisateurs. Par exemple, vous pouvez spécifier UITextContentTypeEmailAddress pour un champ de texte que les utilisateurs remplissent pour recevoir une confirmation par e-mail. Lorsque vous fournissez ces informations sur le contenu que vous attendez des utilisateurs dans une zone de saisie de texte, le système peut dans certains cas sélectionner automatiquement un clavier approprié et améliorer les corrections de clavier et l'intégration proactive avec d'autres possibilités de saisie de texte.

Étant donné que la signification sémantique attendue pour chaque zone de saisie de texte doit être identifiée aussi précisément que possible, vous ne pouvez pas combiner plusieurs valeurs pour une propriété textContentType. Pour les valeurs possibles que vous pouvez utiliser, voir Text Content Types ; par défaut, la valeur de cette propriété est nil.

Cela semble assez simple, mais je ne sais pas comment faire en sorte que cela fasse quoi que ce soit. J'ai créé une application de démonstration simple, ajouté un champ de texte et défini self.textField.textContentType = UITextContentTypeEmailAddress. Ensuite, je l'ai exécuté sur un iPhone 7 avec iOS 10.0.1.

À tout le moins, je m'attendais à ce que cela sélectionne automatiquement le clavier de messagerie, sans avoir à le définir explicitement. Ce n'est pas le cas - j'ai le clavier standard sur mon iPhone.

Je m'attendais également à ce qu'il affiche mes propres adresses e-mail pour les suggestions QuickType. J'ai vu cela se produire ailleurs - si je suis dans Safari et qu'il détecte que je modifie un champ de messagerie, il montre mes adresses e-mail personnelle et professionnelle comme suggestions. Encore une fois, il ne le fait pas ici, même si la documentation le suggère.

Même si j'ai également défini le keyboardType sur UIKeyboardTypeEmailAddress, je ne reçois toujours pas les suggestions QuickType que j'attendais.

Il y a un discours WWDC qui discute de cette nouvelle capacité , mais il n'y a jamais aucune suggestion que vous devez faire autre chose que de définir cette propriété unique.

Suis-je en train de manquer une étape, ou est-ce que cela ne fait pas vraiment ce que j'attends?

24
robotspacer

Ceci est enfin pris en charge dans les applications tierces dans iOS 11. J'ai une application créée à l'aide du SDK iOS 10.3 installé sur iOS 11 bêta 1. Il comprend des champs avec textContentType = UITextContentTypeEmailAddress et ceux-ci suggèrent correctement les deux adresses e-mail sur ma carte de contact. J'ai également des champs avec textContentType = UITextContentTypePostalCode qui suggère correctement mon code postal.

En plus des types existants, iOS 11 ajoute également UITextContentTypeUsername et UITextContentTypePassword, qui peuvent être utilisés pour prendre en charge Password AutoFill for Apps .

9
robotspacer

Juste pour info (parce que je pouvais à peine le trouver dans google et Apple docs):

Dans les nouveaux ios Apple a fourni de nouvelles fonctionnalités (regardez l'image). Voici les description et wwdc à leur sujet.

enter image description here

4
Nik Kov