当我通过RxSwift实现UITextFieldDelegate
时,我会这样做:
self.textField_AddressType.rx.controlEvent(.editingDidBegin).subscribe { _ in
// Code here...
}.disposed(by: self.disposeBag)
但是当我将其应用于UITextView
时,
self.textView.rx.controlEvent(.editingDidBegin).subscribe { _ in
// Code here...
}.disposed(by: self.disposeBag)
我得到一个错误:
'UITextView'不是'UIControl'的子类型
我找不到关于此问题的任何信息,还有另一种方法可以在RxSwift中实现UITextViewDelegate
吗?
答案 0 :(得分:7)
textView.rx.didBeginEditing.subscribe(onNext: { n in
value = n
}, onCompleted: {
completed = true
})
您可以尝试一下。
答案 1 :(得分:1)
您可以映射事件并像这样创建Observable字符串
self.tfUserName.rx.controlEvent(UIControlEvents.editingDidEnd)
.map { self.tfUserName.text }
.filter { $0 != nil }
.map { $0! }
.subscribe(onNext: { (text) in
// Code here...
}).disposed(by: self.disposeBag)