プロパティを観察したいUITextfield.editing
。私はこのコードを使用しています:
self.money.rx_observe(Bool.self, "editing").subscribeNext { (value) in
print("")
}.addDisposableTo(disposeBag)
しかし、実行中に実行されるのは1回だけです。これをどうやって解決しますか?
editing
プロパティは、単なる保存されたプロパティではないため、観察しないでください。次のように定義されます。
public var editing: Bool { get }
したがって、UIKitが実際にその値を取得している方法がわかりません。
代わりに、rx.controlEvent
そして、あなたが興味を持っている制御イベントを次のように指定します。
textField.rx.controlEvent([.editingDidBegin, .editingDidEnd])
.asObservable()
.subscribe(onNext: { _ in
print("editing state changed")
})
.disposed(by: disposeBag)
RXSwift 3.の場合
textField.rx.controlEvent([.editingDidBegin,.editingDidEnd])
.asObservable()
.subscribe(onNext: {
print("editing state changed")
}).disposed(by: disposeBag)
RxSwift 4.0以降、2つの特定の制御イベントがあります:textDidBeginEditing
およびtextDidEndEditing
次のように使用できます:
textField.rx.textDidEndEditing
.asObservable()
.subscribe(onNext: {
print("End of edition")
}).disposed(by: disposeBag)
textField.rx.textDidBeginEditing
.asObservable()
.subscribe(onNext: {
print("Start of edition")
}).disposed(by: disposeBag)