【发布时间】:2018-10-25 07:21:34
【问题描述】:
我想使用 RxSwift 观察 UITextField.text 属性的任何变化。
我尝试使用rx.text 属性,但它仅在我设置text 属性时调用:textField.text = "",但在我输入文本时不起作用。
我也尝试使用rx.observe(String.self, "text"),但结果相同。
如何观察 UITextField 中文字的变化?
【问题讨论】:
我想使用 RxSwift 观察 UITextField.text 属性的任何变化。
我尝试使用rx.text 属性,但它仅在我设置text 属性时调用:textField.text = "",但在我输入文本时不起作用。
我也尝试使用rx.observe(String.self, "text"),但结果相同。
如何观察 UITextField 中文字的变化?
【问题讨论】:
要观察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))
}
}
【讨论】: