检测自定义 UITextField 是否有文本值

Detect if custom UITextField has a text value

我创建了一个自定义文本字段,一个扩展了 UITextField 的 class,我怎么知道那个 UITextField 是否有值,我已经尝试了 shouldChangeCharactersIn 但没有任何反应。

这是我自定义 UITextField 的代码Class

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

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

如果 UITextField 为空或用户删除了其中的值,我想打印 "the textfield is blank",如果其中有值或用户在其中添加了值,我想打印 "the textfield has content" .

您只需在 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"))
}