Dans la version bêta d’iOS 12, j’ai observé qu’il donnait une suggestion de clavier à OTP (de SMS).
Y a-t-il une API qu'ils ont créée pour les développeurs? Ou ce serait juste une fonctionnalité du système d'exploitation.
Il s’agit d’une fonctionnalité du système d’exploitation, mais vous devez définir la propriété UITextField
de la vue d’entrée de textContentType
, oneTimeCode
.
otpTextField.textContentType = .oneTimeCode
REMARQUE: Le code de sécurité La saisie automatique ne fonctionne qu'avec le clavier système, mais pas avec le clavier personnalisé.
Lorsque vous obtiendrez OTP, cela ressemblera à ceci:
Malheureusement, vous ne pouvez pas lire le message en entier, vous pouvez uniquement lire le code de vérification dans le message.
Rapide:
@available(iOS 12.0, *)
public static let oneTimeCode: UITextContentType
myTextField.textContentType = .oneTimeCode
Objectif c:
UITextContentType const UITextContentTypeOneTimeCode NS_AVAILABLE_IOS(12_0);
myTextField.textContentType = UITextContentTypeOneTimeCode;
Ces codes de vérification suivants PEUVENT être reconnus par le système:
Un nombre pur de longueurs de 3-8
comme: 123 1234 12345 666666 1234567 12345678 ...
Les codes de vérification suivants NE PEUVENT PAS être reconnus par le système:
(i) .la longueur du code est inférieure à 3 ou supérieure à 8 (ii). inclure des lettres
comme: 1 12 123a 9h7d 123456789 ...
Autres:
Code de sécurité La saisie automatique ne fonctionne qu'avec le clavier système. Cela ne fonctionnera pas avec un clavier personnalisé.
Il n'y a pas d'api, mais vous devez définir textContentType
comme .oneTimeCode
de la propriété UITextField
.
otpTextField.textContentType = .oneTimeCode
encore une chose
Si vous utilisez une vue d’entrée personnalisée pour un champ de texte, iOS ne peut pas afficher l'interface utilisateur AutoFill nécessaire.
Non, il n'y a pas d'API publique pour cela. Il est automatiquement géré par le système d'exploitation . Il vous suffit de définir la propriété textContentType de la vue d'entrée de UITextField sur oneTimeCode.
textField.textContentType = .oneTimeCode