天天看点

RxSwift设置 UITextField文本订阅未响应

通过以下代码,可以快速实现输入框文本变化监听

textField.rx.text.orEmpty
            .subscribe(onNext: {
                print("您输入的是:\($0)")
            })
            .disposed(by: disposeBag)
           

但是,如果通过设置

text

属性则无法触发。

解决方案

我们在设置值的同时,手动发送一个事件,则会触发订阅。

textField.text = "修改文本"
textField.sendActions(for: .allEditingEvents)
           

UITextField.rx.text对于文本改变输出是通过事件(action contro)来的,而赋值方式,并没有触发任何 action,所以可以通过手动发送一个 action解决。