Я заметил, что
textField.publisher(for: \.text)
доставляет события по завершении редактирования, но не для каждого символа/изменения редактирования. Как мне получить издателя, который отправляет четы для каждого изменения? В ReactiveSwift это будет
textField.reactive.continousTextValues()
А в RxSwift это было бы просто (Как вы получаете сигнал каждый раз, когда свойство текста UITextField изменяется в RxSwift)
textField.rx.text
Подходы, которые я использовал:
- проверка методом
publisher(for:options:)
, но подходящих вариантов для желаемого результата нет. - добавление цели/действия
textField.addTarget(self, action: #selector(theTextFieldDidChange), for: .editingChanged)
(событие изменения текста UITextField) - делая по существу то же самое, что и предыдущий шаг, подключая действие через построитель интерфейса, что приводит к дополнительной работе и загромождению кода.
- Смотрю видеоролики WWDC 2019 года о Combine. Они не имели дело с текстовыми полями, а вместо этого использовали переменные
@Published
, скрывая, откуда на самом деле пришли значения - (или я что-то пропустил?).
На данный момент я понятия не имею, как это сделать, и я чувствую тенденцию вернуться к ReactiveSwift, но я хотел спросить вас, прежде чем сделать этот шаг назад.
TextField
вместоUITextField
? Это обновляет привязкуtext
при каждом изменении символа. - person Dávid Pásztor   schedule 11.03.2020