2016-09-21 139 views
4

我想觀察屬性UITextfield.editing。我正在使用此代碼:使用RxSwift觀察UITextField.editing

self.money.rx_observe(Bool.self, "editing").subscribeNext { (value) in 
    print("") 
}.addDisposableTo(disposeBag) 

但是在運行過程中,它只執行一次。如何解決此問題,請

回答

7

請勿注意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) 
8

對於RXSwift 3.0

textField.rx.controlEvent([.editingDidBegin,.editingDidEnd]) 
     .asObservable() 
     .subscribe(onNext: { 
      print("editing state changed") 
     }).disposed(by: disposeBag)