如何使用 RxSwift 观察 UITextField 中的文本变化?
Posted
技术标签:
【中文标题】如何使用 RxSwift 观察 UITextField 中的文本变化?【英文标题】:How to observe text change in UITextField using RxSwift? 【发布时间】:2018-10-25 07:21:34 【问题描述】:我想使用 RxSwift 观察 UITextField.text
属性的任何变化。
我尝试使用rx.text
属性,但它仅在我设置text
属性时调用:textField.text = ""
,但在我输入文本时不起作用。
我也尝试使用rx.observe(String.self, "text")
,但结果相同。
如何观察 UITextField 中文字的变化?
【问题讨论】:
【参考方案1】:要观察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))
【讨论】:
以上是关于如何使用 RxSwift 观察 UITextField 中的文本变化?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 RxSwift 中使用 EventConvertible 创建客户观察者事件?