Для скрытия 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!