如何跟踪 textField 值是否被 rxSwift 更改?

How to track if textField value is changed by rxSwift?

这是我的案例:

我收到了带有文本字段的警报。当我在此文本字段中添加错误的 link 并按下发送按钮时,出现错误 - 您的 link 不正确。我按关键字过滤了它 - 比如输入了“facebook” - 好的,这个 link 是正确的。

但是,当我在输入错误的 link 后开始发送新短信 link 时,错误文本不会删除。

我如何跟踪 textField 值是否已更改并正确删除此错误文本?

这是我的代码:

button.rx
        .tap
        .bind { [weak self] _ in
            guard let self = self else { return }
            let text = self.textField.text ?? ""
            guard
                text.contains(self.viewModel.socialType.urlSubstring) else {
                self.textField.textColor = .red
                self.errorLabel.text = self.viewModel.socialType.error
                return
            }
            self.textField.textColor = .black
            self.viewModel.onSend()
        }
        .disposed(by: bag)
}

谢谢!

例如,您可以这样做:

textField
    .rx.text.orEmpty
    .debounce(.milliseconds(30), scheduler: MainScheduler.instance)//checking timeout
    .subscribe(onNext: { [weak errorLabel = self.errorLabel] _ in
        errorLabel?.text = nil
    }
    .disposed(by: bag)