2016-12-10 3 views
2

Я ищу способ минимизировать символы в текстовом поле. Поскольку текстовое поле предназначено для ввода имени пользователя, я хочу, чтобы пользователи вводили 4 символа минимум до 30 символов. Во-первых, я создал текстовое поле shouldChangeCharactersIn для установки максимальных символов в текстовом поле. Код выглядит хорошо, но проблема, когда я хочу сделать пользователей, если текстовое поле имени пользователя меньше 4 символов, приложение дает им ошибку или возвращает false.Как установить минимальные символы текстового поля в swift 3

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { 

let currentString = usernameTextField.text!.characters.count ?? 0 
     if (range.length + range.location > currentString) { 
      return false 
     } 
     let newLength = currentString + string.characters.count - range.length 
     return newLength <= 30 
    } 

Любая помощь?

ответ

1

Я бы применил метод делегата textFieldShouldEndEditing(_:). Если текущая длина слишком короткая, верните false и необязательно представите какое-то сообщение/индикатор, чтобы пользователь знал, что не так.

Я бы также обновил textField(_:shouldChangeCharactersIn:replacementString:), чтобы проверить, слишком ли длинна новая длина. Если это так, отключите кнопку «Сохранить» или какой-либо другой соответствующий компонент (ы) пользовательского интерфейса, позволяющий пользователю узнать, что у них есть что исправить.

1
func textFieldShouldReturn(textField: UITextField) -> Bool { 
    let fieldTextLength = textField.text!.characters.count 

    if fieldTextLength < 4 || fieldTextLength > 30 { 
     //do something about it 
    } 
    self.view.endEditing(true) 
    return true 
} 

Не понял вашу проблему в конце, но это должно сделать это!

+0

Проблема в том, что любые пользователи вводят имя пользователяTextField меньше 4 и более 30 символов, это дает ему ложь. Я сделал последнюю часть (более 30 символов), но я не мог найти решение для менее 4 символов. – user2508528

+0

Это не правильный подход. Этот код по-прежнему позволяет отклонять клавиатуру, даже если текстовое поле слишком короткое или слишком длинное. – rmaddy

Смежные вопросы