Определить, имеет ли пользовательский UITextField текстовое значение - PullRequest
0 голосов
/ 23 апреля 2020

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

Это мой код для Мой пользовательский класс UITextField

@IBDesignable class CustomTextField: UITextField {
    override init(frame: CGRect) {
        super.init(frame: frame)
        loadContent()
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        loadContent()
    }
    ...
}

Я хочу напечатать "the textfield is blank", если UITextField не заполнен или если пользователь удалил значение в нем, и "the textfield has content", если в нем есть значение или если пользователь добавил значение в нем.

1 Ответ

1 голос
/ 23 апреля 2020

Вам просто нужно добавить цель в текстовое поле для UIControl.Event .editingChanged

override func willMove(toSuperview newSuperview: UIView?) {
    addTarget(self, action: #selector(editingChanged), for: .editingChanged)
}

и использовать UIKeyInput метод hasText, чтобы проверить, пусто ли ваше поле:

@objc func editingChanged(_ textField: UITextField) {
    print("the textfield " + (hasText ? "has content" : "is blank"))
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...