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

Ily*_*bet 3 ios swift

我想观察UITextField.text使用RxSwift 对属性进行的任何更改。

我尝试使用rx.text属性,但仅当我设置如下text属性时才调用该属性:textField.text = "",但在键入文本时不起作用。

我也尝试使用rx.observe(String.self, "text"),但是它给出了相同的结果。

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

小智 5

要观察文本的任何变化,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))
    }

}
Run Code Online (Sandbox Code Playgroud)