在代码中是否有在UITextField中设置文本的回调?

时间:2018-01-25 10:50:26

标签: ios swift uitextfield

我想检测是否在代码中设置了UITextField的文本。例如我需要someTextField.text = "Some Text"的回调。我不想为.editingChanged注册通知,因为每次用户输入内容时也会调用此通知。在代码中设置值时,应该

有办法做到这一点吗?任何指针将不胜感激!谢谢!

2 个答案:

答案 0 :(得分:0)

您可以使用textfields .isEmpty方法检查

if someTextField.isEmpty { 
    //do something 
}

答案 1 :(得分:0)

您可以通过子类化

覆盖UITextField中的文本var
class ObservableTextField: UITextField {

    var action : (()->Void)?

    override var text: String?{
        didSet{
            action?()
        }
    }

}

使用

@IBOutlet weak var obsTextField: ObservableTextField!

override func viewDidLoad() {
    super.viewDidLoad()

    obsTextField.action = {
        debugPrint("changed")
    }
}