У меня есть это условие в текстовое поле, где -Swift: Не удается удалить символы в текстовое поле с ограничением состояния на основе символов
- Если в раскрывающемся списке стран, я выбираю BE, то текстовое поле в той же форме, должно быть разрешено только 4 символа
- Если это не BE, тогда текстовое поле должно быть разрешено всего 12 символов.
Я реализовал это с помощью -
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool
Проблема:
выше реализация работает хорошо, но -
- Я выбираю страну, кроме BE (т.е. 12 символов разрешены в текстовом поле) и сохранять данные.
- Повторно открыть форму и выбрать «BE». Теперь я не могу редактировать текстовое поле вообще.
Как решить эту проблему?
Вот мой полный код -
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
var maxLength: Int?
let newText = NSString(string: textField.text!).stringByReplacingCharactersInRange(range, withString: string)
if ((textField.textInputMode?.primaryLanguage == "emoji") || (textField.textInputMode?.primaryLanguage == nil)){
return false
}
switch textField {
case postCodeText:
if (self.selectedCountryCode == "BE") {
maxLength = 4
}
else {
maxLength = 12
}
return newText.characters.count <= maxLength
case streetText:
maxLength = 40
return newText.characters.count <= maxLength
}
}
EDIT 1: Добавлен экран записи recordit link demonstrating the problem
Забой работает или нет на текстовое поле редактирования –
В общем, да, это работает нормально ... Но когда я пытаюсь сценарий объяснил в «Проблема» раздел, backspace не работает –