Установить ограничение длины editText внутри tableView в iOS - PullRequest
0 голосов
/ 05 декабря 2018

Я использовал tableView в качестве экрана регистрации, и мне нужно установить ограничение на длину каждой строки.Я использовал функцию ниже, но она позволяет всем полям иметь одинаковое ограничение.Кто-нибудь знает, как с этим справиться?

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    let maxLength = 12
    let currentString: NSString = textField.text! as NSString
    let newString: NSString =
        currentString.replacingCharacters(in: range, with: string) as NSString
    return newString.length <= maxLength
}

1 Ответ

0 голосов
/ 05 декабря 2018

Поскольку методы делегата вашего текстового поля находятся в ячейке, ячейка должна знать, какую длину применять для ее текстового поля.

Контроллер представления должен предоставить эту длину каждой ячейке на основе cellForRowAtна текущем пути индекса.

Добавьте свойство textLength к вашему классу ячеек, а затем установите это значение в cellForRowAt.

Тогда ваш shouldChangeCharactersIn в классе ячеек можетиспользуйте это свойство textLength вместо жестко закодированного 12, который у вас есть сейчас.

...