Я нашел решение (это взлом) моего вопроса.
Переопределите текстовое свойство UITextField и добавьте didSet()
, а затем форсируйте отправку события, например sendActions(for: .valueChanged)
.
Таким образом, следующее сработало для меня
private class CustomTextField: UITextField {
override var text: String? {
didSet {
sendActions(for: .valueChanged)
}
}
}
...
customTextField.rx.text
.bind(onNext: { textValue in
print( textValue )
}).disposed(by: disposeBag)
...
customTextField.text = "Hello World"
Следующее приведет к тому, что Hello World
будет распечатано, как и ожидалось, поэтому свойство valueChanged
было запущено, когда значение customTextField
было установить программно.
У кого-нибудь есть лучшее решение? Получил вдохновение от: { ссылка } и https://github.com/ReactiveX/RxSwift/issues/551