3 votes

Comment passer automatiquement à l'UITextField suivant en Swift ?

J'ai 2 textFields avec le type de clavier NumberPad

@IBOutlet weak var ourTextField: UITextField!
@IBOutlet weak var forThemTextField: UITextField!

et je veux passer automatiquement à l'autre champ de texte (de ourTextField à forThemTextField) après avoir entré deux chiffres dans ourTextField puis après être passé à l'autre champ de texte (forThemTextField) et avoir entré 2 chiffres, je veux que le clavier se cache automatiquement.

J'ai ajouté une condition pour n'accepter que deux chiffres dans mes textFields par ce code :

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    let lengthsDictionary = [ourTextField : 2, forThemTextField: 2]
    guard let length = lengthsDictionary[textField] else {
        return true
    }
    let currentCharacterCount = textField.text?.count ?? 0
    if (range.length + range.location > currentCharacterCount){
        return false
    }
    let newLength = currentCharacterCount + string.count - range.length

    return newLength <= length
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X