如何跟踪 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)
这是我的案例:
我收到了带有文本字段的警报。当我在此文本字段中添加错误的 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)