У меня 4 UITextFields
в одном UIView
вот так:
каждый UITextField
ограничен 4 символами. я хочу реализовать автоматическое переключение между UITextFields
с подсчетом символов каждого UITextField
.
я использую shouldChangeCharactersIn
для символов ограничения:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let maxLength = 4
var newString = String()
let currentString: NSString = textField.text! as NSString
newString = currentString.replacingCharacters(in: range, with: string)
return newString.length <= maxLength
}
и это мой инструмент переключения:
func textFieldDidChange(_ textField: UITextField){
let text = textField.text
if text?.utf16.count == 4 {
switch textField {
case firstPartTextField:
secondPartTextField.becomeFirstResponder()
case secondPartTextField:
thirdPartTextField.becomeFirstResponder()
case thirdPartTextField:
fourthPartTextField.becomeFirstResponder()
default:
break
}
}
}
моя проблема заключается в переключении на предыдущий UITextField
при удалении текстов, я не могу обнаружить событие backSpace, когда UITextField
пусто.