Я изучаю 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 - кнопка не обновляется, потому что в текст не было внесено никаких изменений!
Итак, я предполагаю, что мне нужно как-то заархивировать или объединить эти два источника (наблюдаемые?), Чтобы эта кнопка могла сразу наблюдать за любыми изменениями в каждом из них.
Как мне подойти к этой проблеме?