How can i get controlEvent type in RxSwift?

372 Views Asked by At

I added textfield two controlEven with RxSwift I want to different things in a method.

textField.rx.controlEvent([.editingDidBegin, .editingDidEnd])
        .asObservable()
        .subscribe(onNext: { event in
            // setFocusing(withType: ControlEvent)
        })

private func setFocusing(type: ControlEvent) {
    if type == .editingDidBegin { 
       //....
    } else if type ==.editingDidEnd {
       //....
    }
}

I want to execute everything one method but how can I get controlEvent type? Is it possible?

1

There are 1 best solutions below

0
Fabio Felici On BEST ANSWER

Try this:

Observable.merge(
  [.editingDidBegin, .editingDidEnd]
    .map { event in
      textField.rx.controlEvent(event).map { event }
    }
)
.subscribe(onNext: setFocusing)

func setFocusing(type: UIControl.Event) {
  if type == .editingDidBegin {
    //....
  } else if type == .editingDidEnd {
    //....
  }
}