手动为UITextField设置"text"不会调用.EditingChanged

Pra*_*man 0 uitextfield ios

我已经将具有目标的UITextField子类化了

self.addTarget(self, action: "onChange:", forControlEvents: .EditingChanged)
Run Code Online (Sandbox Code Playgroud)

当用户在文本字段中键入时,这可以正常工作.虽然我需要在手动更新textfield的"text"属性时调用相同的方法"onChange:".

let tf = CustomTextField()
tf.text = "Trigger !!!"
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做?

Leo*_*ica 8

这是故意的,如果您需要在事件处理程序中以编程方式更改文本,则可以防止无限回声.

使用sendActions(for controlEvents:)手动通知事件处理程序.

tf.text = "Trigger !!!"
tf.sendActions(for: .editingChanged)
Run Code Online (Sandbox Code Playgroud)