Я хочу ограничить количество символов, которые пользователь может использовать в текстовом поле. Я воспользовался функцией по этой ссылке: Max length UITextField (Imanou Petit)Swift: Limit Characters # в textField без отключения/вмешательства в другие функции
Однако в моем представленииDidLoad() У меня есть несколько текстовых полей, которые я уже ссылаюсь на делегат, потому что я хочу, чтобы клавиатура «возвращалась», когда пользователь нажимает кнопку Return
ключ на клавиатуре. Это я делаю через textFieldShouldReturn
, как это (у меня также есть метод touchesBegan, но я хочу, чтобы пользователь также имеет возможность ключа Return
):
func textFieldShouldReturn(textField: UITextField!) -> Bool {
self.stuffOneTextField.resignFirstResponder()
self.linkTextField.resignFirstResponder()
self.descriptionTextField.resignFirstResponder()
self.ogTextField.resignFirstResponder()
self.priceTextField.resignFirstResponder()
return true
}
Если добавить в эту функцию ниже в viewDidLoad , тогда клавиша «Return» на клавиатуре не работает и ограничивает ВСЕ текстовые поля (у меня есть 5).
override func viewDidLoad() {
super.viewDidLoad()
self.stuffOneTextField.delegate = self
self.linkTextField.delegate = self
self.descriptionTextField.delegate = self
self.ogTextField.delegate = self
self.priceTextField.delegate = self
}
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
guard let text = textField.text else { return true }
let newLength = text.characters.count + string.characters.count - range.length
return newLength <= limitLength
}
Мне нужно всего лишь ограничить 2 текстовых поля. Я пробовал просто вставить конкретное имя текстового поля, а не все текстовые поля как textField
s, а затем он ограничивает 1 textField и не позволяет мне вводить другие ... Очень странно ...
Как сделать обойти это?
Любая помощь означает много.
Спасибо за ответ. Где указать, как долго я хочу ограничить символы? Смущает константа newLength и возвращаемая дата ... И где этот метод помещается? В рамках другого метода? @Don – lukaivicev
Я обновил ответ, чтобы показать, что это будет в теле func textField (textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String). Возвращаемое значение - это логическое значение, указывающее, находится ли типизированная строка под вашим лимитом размера limitLength. Как и в ответе на вопрос, который вы связали выше, 'limitLength' является константой, определенной в вашем классе. – Don
Красивые. Огромное спасибо. – lukaivicev