Как скройлить text View при вводе текста Swift 4?

Для скрытия TextView при вводе текста в Swift 4 можно использовать делегат UITextViewDelegate и обработчики событий текстового поля.

Вот подробное объяснение поэтапно:

1. Добавьте делегат UITextViewDelegate к вашему классу представления (ViewController или любой другой класс, который управляет этим текстовым полем).

class ViewController: UIViewController, UITextViewDelegate {
    // ...
}

2. Затем, в методе viewDidLoad, назначьте делегата вашему текстовому полю.

override func viewDidLoad() {
    super.viewDidLoad()
    
    textView.delegate = self
}

3. Реализуйте метод делегата shouldChangeTextIn, чтобы проверить, был ли введен текст или удален. Если в поле текста есть текст, скройте textView. Иначе, покажите его.

func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
    let newText = (textView.text as NSString).replacingCharacters(in: range, with: text)
    textView.isHidden = newText.isEmpty
    return true
}

В этом методе мы проверяем новый текст, который будет вставлен в текстовое поле textView. Если новый текст после вставки или удаления символа становится пустым, то мы скрываем textView, установив свойство isHidden в значение true. Если же новый текст содержит хотя бы один символ, то мы показываем textView, установив isHidden в значение false.

Важно отметить, что этот подход позволяет скрывать текстовое поле только при изменении его содержимого. Если пользователь скопирует или вставит в поле текст, оно останется видимым. Если вам нужно скрыть поле при любых действиях пользователей, связанных с ним, вам нужно будет добавить соответствующие обработчики событий, такие как editingDidBegin, editingChanged, editingDidEnd и т. д., и в них определять, когда скрывать или показывать textView.

Надеюсь, это поможет вам скрывать textView при вводе текста в Swift 4!