如何使用RxSwift观察UITextField中的文本更改?

时间:2018-10-25 07:21:35

标签: ios swift

我想使用RxSwift观察UITextField.text属性的任何变化。

我尝试使用rx.text属性,但是只有在我设置text这样的属性textField.text = ""时,它才会调用,但是在键入文本时却无法使用。

我也尝试使用rx.observe(String.self, "text"),但结果相同。

如何观察UITextField中文本的任何变化?

1 个答案:

答案 0 :(得分:4)

要观察UITextField中文本的任何变化,可以为Reactive类创建扩展名:

public extension Reactive where Base: UITextField {

    public var textChange: Observable<String?> {
        return Observable.merge(self.base.rx.observe(String.self, "text"),
                                self.base.rx.controlEvent(.editingChanged).withLatestFrom(self.base.rx.text))
    }

}