C.l*_*liu 17 ios swift rx-swift reactivex rx-cocoa
我想观察房产UITextfield.editing.我正在使用此代码:
self.money.rx_observe(Bool.self, "editing").subscribeNext { (value) in
print("")
}.addDisposableTo(disposeBag)
Run Code Online (Sandbox Code Playgroud)
但是在运行过程中,它只执行一次.请问我该如何解决这个问题
sol*_*ell 34
不要观察editing财产,因为它不仅仅是一个存储的财产.它被定义为:
public var editing: Bool { get }
Run Code Online (Sandbox Code Playgroud)
所以你不知道UIKit实际上是如何获得这个价值的.
相反,使用rx.controlEvent并指定您感兴趣的控件事件,如下所示:
textField.rx.controlEvent([.editingDidBegin, .editingDidEnd])
.asObservable()
.subscribe(onNext: { _ in
print("editing state changed")
})
.disposed(by: disposeBag)
Run Code Online (Sandbox Code Playgroud)
Chi*_*sai 12
适用于RXSwift 3.0
textField.rx.controlEvent([.editingDidBegin,.editingDidEnd])
.asObservable()
.subscribe(onNext: {
print("editing state changed")
}).disposed(by: disposeBag)
Run Code Online (Sandbox Code Playgroud)