Comment faire pour déplacer le curseur d'un champ de texte à un autre automatiquement en swift ios par programmation?
func textFieldDidBeginEditing(textField: UITextField) {
scrlView.setContentOffset(CGPointMake(0, textField.frame.origin.y-70), animated: true)
if(textField == firstDigit){
textField.becomeFirstResponder()
secondDigit.resignFirstResponder()
}
else if(textField == secondDigit){
textField.becomeFirstResponder()
thirdDigit.resignFirstResponder()
}
else if(textField == thirdDigit){
//textField.becomeFirstResponder()
fourthDigit.becomeFirstResponder()
}
Je suis à l'aide de quatre objets textfield pour OTP entrée, un seul numéro peut être entré à l'heure. Après avoir entré le numéro, j'ai besoin de déplacer le curseur automatiquement au champ suivant.
- github.com/hackiftekhar/IQKeyboardManager s'il vous Plaît ajouter cette librairie dans votre projet à l'aide de gousses et de fait. Vous n'avez pas besoin de code quelque chose ou ajouter quelque chose d'autre. Cette bibliothèque gère tout par lui-même.
- voir ce pour aider : stackoverflow.com/questions/53665104/otp-textfields-swift/...
Vous devez vous connecter pour publier un commentaire.
Ensemble textField délégué et ajouter une cible:
Maintenant, lorsque des modifications de texte de changement textField
Et enfin lorsque l'utilisateur de commencer le montage clair textField
Solution Pour Swift 4
Dans Cette solution, Vous passez à la zone suivante. Et Lorsque Vous Appuyez sur Effacer passera dans la zone de texte précédente.
Étape 1: positionner le Sélecteur de Champ de Texte
Étape 2: Maintenant, nous Nous occupons de passer à côté du Champ de texte et d'Effacer la zone de texte.
Remarque importante: N'Oubliez pas De mettre Délégué.
Tout d'abord, nous aurons besoin de mettre la balise pour la UITextField;
Remarque: L'objet UITextField prend qu'un seul caractère dans le format de nombre, qui est en OTP format.
Swift 3 code pour déplacer le curseur d'un champ à l'autre automatiquement dans OTP(One Time Password) champs.
Ceci est similaire à la façon dont UberEats a leur otp champs. Vous pouvez simplement copier et coller dans un fichier et de l'exécuter pour voir comment il fonctionne. Mais n'oubliez pas d'ajouter le MyTextField classe ou il ne fonctionnera pas.
Si vous le souhaitez automatiquement pour passer au champ suivant, après un nombre est entré et être encore capable de se déplacer vers l'arrière si l'arrière est enfoncé ALORS que le champ est vide, cela va vous aider.
Comme la toute première chose que j'ai dit, c'est similaire comment UberEats a leurs sms textFields de travail. Vous ne pouvez pas simplement au hasard appuyez sur un champ de texte et de le sélectionner. En utilisant cela, vous pouvez aller de l'avant et vers l'arrière. Le ux est subjectif, mais si Uber utilise le ux doit être valide. Je dis que c'est similaire, car ils ont aussi une boîte grise couvrant la zone de texte donc je ne suis pas sûr de ce qui se passe derrière elle. C'était la plus proche que je pouvais obtenir.
D'abord vous allez avoir à la sous-classe UITextField à l'aide de cette réponse de détecter quand le retour arrière est enfoncé. Lorsque le dos est enfoncé de votre va effacer tout ce qui est à l'intérieur de ce champ ET le champ précédent puis sautez sur le champ précédent.
Deuxième vous allez avoir à empêcher l'utilisateur d'être en mesure de sélectionner le côté gauche du curseur une fois qu'un char est à l'intérieur de la zone de texte à l'aide de cette réponse. Vous substituez la méthode dans la même sous-classe de la première étape.
Troisième vous avez besoin pour détecter les textField est actuellement active à l'aide de cette réponse
Quatrième vous allez avoir à courir quelques vérifications à l'intérieur de
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool
à l'aide de ce tutoriel YouTube. J'ai ajouté quelques petites choses à son travail.Je fais tout par programme de sorte que vous pouvez copier et coller le code entier dans un projet et l'exécuter
D'abord créer une sous-classe UITextField et nom il
MyTextField
:Deuxième à l'intérieur de la classe avec le bureau du procureur textfields, ensemble de la classe pour utiliser le UITextFieldDelegate et la MyTextFieldDelegate, puis créer une propriété de la classe et le nom qu'il
activeTextField
. Lorsque selon textField devient actif à l'intérieur detextFieldDidBeginEditing
vous définissez laactiveTextField
pour que. Dans le viewDidLoad ensemble de tous les objets textfield à utiliser à la fois des délégués.Assurez-vous que la Première otpTextField est ACTIVÉ et la deuxième, troisième, et quatrième otpTextFields sont TOUT d'abord DIASABLED
Ceci est distinct de la réponse ci-dessus, mais si vous avez besoin d'ajouter plusieurs caractères à chaque otpTextField puis suivez cette réponse.
Objective-c et Swift 4.2 pour déplacer le curseur d'un champ à l'autre automatiquement dans OTP(One Time Password) champs
Ici, je prends un point de vue contrôleur
]Un
Puis donner les valeurs de la Balise pour chaque TextFiled.Ceux liés à des images de référence sont indiquées ci-dessous
Entrez la valeur tag pour la première textfiled --> 1,2 ndTextfiled ---->2,3 rd TextFiled --->3 4ème TextFiled---->4
Ensuite affecter Textfiled Délégués et écrire le code ci-dessous et voir la magie
}
swift4.2 code de version
**appel de UITextfieldDelegate de la fonction et de faire la prochaine champ de texte que le premier intervenant et pas besoin d'ajouter de la cible et n'oubliez pas de définir des délégués de tous les champs de texte dans le viewDidLoad **
J'ai essayé de nombreux codes et finalement cela a fonctionné pour moi dans Swift 3.0 Dernière [Mars 2017]
La "ViewController" classe hérité de la "UITextFieldDelegate" pour la fabrication de ce code de travail.
Ajouter le champ de Texte avec la Bonne Balise nuber et ce numéro est utilisé pour prendre le contrôle de zone de texte pertinente basée sur incrémentielle numéro de l'étiquette est attribuée.
Dans le code ci-dessus, le "returnKeyType = UIReturnKeyType.à côté de la question" où faire le clavier la touche retour pour s'afficher comme "Suivant", vous avez aussi d'autres options comme "Join/Aller", etc, en fonction de votre application de modifier les valeurs.
Cette "textFieldShouldReturn" est une méthode de UITextFieldDelegate contrôlé et nous avons ici à côté de terrain de la sélection fondée sur le Tag de la valeur d'incrémentation
Utilisation textFieldShouldBeginEditing méthode
Ici, j'ai été prendre 4 TextField
pour swift 3