Я хочу изменить вывод, всегда добавляя "+1"
в конце каждого изменения. Он отлично работает для UITextField
, но для UITextView
он излучает бесконечное количество раз.
Может кто-нибудь объяснить, как я могу заставить UITextView вести себя так же, как UITextField в этом примере?
import UIKit
import RxSwift
import RxCocoa
class ViewController: UIViewController {
@IBOutlet private weak var textField: UITextField!
@IBOutlet private weak var textView: UITextView!
private let disposeBag = DisposeBag()
override func viewDidLoad() {
super.viewDidLoad()
problem()
noproblem()
}
//This will write infinite number of 111111111 after typing anything
private func problem() {
textView.rx.text.map { text in
return text! + "1"
}.asDriver(onErrorJustReturn: "-").drive(textView.rx.text).disposed(by: disposeBag)
}
//This will write 1 once per change, as expected!
private func noproblem() {
textField.rx.text.map { text in
return text! + "1"
}.asDriver(onErrorJustReturn: "-").drive(textField.rx.text).disposed(by: disposeBag)
}
}
Когда я отлаживаю, я вижу, что UITextView+Rx.swift
имеет условие для этого, но отладчик врет или не работает: