I have 6 text field text box. And when user finish enter in first text field, then it should automatically have to go second and so on. Here my code hats not working. when i enter the value in first text field, the values is entering in second ..here my code :
This below code i have done to enter only one digit in each text field. But here how can i add the text field responder...once i finish with first text field, adn so on...
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if textField == self.cardTextFieldOne{
guard let text = textField.text else {return true}
let newLength = text.characters.count + string.characters.count - range.length
return newLength <= 1
}else if textField == self.cardTextFieldTwo{
guard let text = textField.text else { return true }
let newLength = text.characters.count + string.characters.count - range.length
return newLength <= 1
}
else if textField == self.cardTextFieldTwo{
guard let text = textField.text else { return true }
let newLength = text.characters.count + string.characters.count - range.length
return newLength <= 1
}
else if textField == self.cardTextFieldThree{
guard let text = textField.text else { return true }
let newLength = text.characters.count + string.characters.count - range.length
return newLength <= 1
}
else if textField == self.cardTextFieldFour{
guard let text = textField.text else { return true }
let newLength = text.characters.count + string.characters.count - range.length
return newLength <= 1
}
else if textField == self.cardTextFieldFive{
guard let text = textField.text else { return true }
let newLength = text.characters.count + string.characters.count - range.length
return newLength <= 1
}
else if textField == self.cardTextFieldSix{
guard let text = textField.text else { return true }
let newLength = text.characters.count + string.characters.count - range.length
return newLength <= 1
}
else if textField == self.cardTextFieldMonth{
guard let text = textField.text else { return true }
let newLength = text.characters.count + string.characters.count - range.length
return newLength <= 2
}
else if textField == self.cardTextFieldYear{
guard let text = textField.text else { return true }
let newLength = text.characters.count + string.characters.count - range.length
return newLength <= 2
}
return true
}
Thanks in advance !!
Update
if textField == self.cardTextFieldOne{
guard let text = textField.text else {return true}
let newLength = text.characters.count + string.characters.count - range.length
if (string == "") || string.characters.count < 1
{
return true //This also allow you to backspace
}else if (cardTextFieldOne.text?.characters.count)! >= 1
{
cardTextFieldOne.resignFirstResponder();
self.cardTextFieldTwo.becomeFirstResponder()
return false
}
return newLength <= 1
}