Я изучаю RxSwift и RxCocoa.
Я столкнулся с этой проблемой:
У меня есть UITextField и UIPickerView и UIButton.
UIButton должен стать включенным, как только UITextField будет действительным. Для каждого элемента, выбранного из UIPickerView, есть разные регулярные выражения проверки.
Это мой код:
textField.rx.text
.map({ (text) -> Bool in
return self.validate(text!, self.regex)})
.subscribe(onNext: { (valid) in
self.button.alpha = valid ? 1 : 0.5
self.button.isEnabled = valid
})
.disposed(by: disposeBag)
pickerView.rx.itemSelected.subscribe(onNext: { row, value in
self.regex = getRegex(row)
}).disposed(by: disposeBag)
Итак, я выбираю регулярное выражение сначала из pickerView, а затем наблюдаю за изменением текста. Проблема возникает, когда я хочу сначала ввести текст, а затем выбрать другое регулярное выражение из pickerView - кнопка не обновляется, потому что в текст не было внесено никаких изменений!
Так что я предполагаю, что мне следует каким-то образом сжать или объединить эти два источника (наблюдаемые?), Чтобы эта кнопка могла наблюдать любое изменение от каждого из них одновременно.
Как мне подойти к этой проблеме?