Ограничение количества символов в TextView

uitextview

#1

Есть 2 UITextView (textView1, textView2). Необходимо ограничить количество вводимых символов пользователем. Использую такой код:

 func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
    let newText = (textView1.text as NSString).replacingCharacters(in: range, with: text)
    let numberOfChars = newText.count
    return numberOfChars < 100    // 100 Limit Value
}

Все работает. Но как записать такое же условие одновременно и для textView2?


#2

Присвойте делегаты textView1 и textView2 к классу в котором используется этот метод

 func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
    if textView == textView1{
     //Условие для textView1
    }else if textView == textView2{
      //Условия для textView2
    }
    return false      
    }

Если сократить (и для textView1 и для textView2 используется одинаковое условие) то следующий текст (Не забываем присвоить делегаты)

 func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
    let newText = (textView.text as NSString).replacingCharacters(in: range, with: text)
    let numberOfChars = newText.count
    return numberOfChars < 100    // 100 Limit Value
}

#3

Спасибо! Все работает.


#4

Попутно возник еще один вопрос, а как добавить еще одно свойство в метод:

func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String)

если там в конце стоит return?
Нужно вставить:

if(text == "\n") {
            textView.resignFirstResponder()
            return false
        }
        return true

что позволит скрыть клавиатуру, при нажатии на Done на клавиатуре.