2016-09-21 105 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)