如何以RxSwift方式实现shouldChangeText

时间:2019-01-04 07:06:28

标签: ios swift rx-swift

是否有一种方法可以以RxSwift方式实现shouldChangeTextIn UITextView的委托方法?我的目标是限制用户的文本输入。我只有这个:

    self.textView.rx.text
        .orEmpty
        .scan("") { (previous, new) -> String in
            return new.count > 254 ? previous : new
        }
        .bind(to: self.viewModel.notes)
        .disposed(by: self.disposeBag)

这是用于数据,但我不知道在254个计数后如何防止进一步输入。

我还找到了RxTextViewDelegateProxy,但我也不确定如何使用它。

let rxTVDelegateProxy = RxTextViewDelegateProxy(textView: self.textView)

1 个答案:

答案 0 :(得分:1)

尝试一下:

       textView.rx.text.orEmpty
        .scan("") { (previous, new) -> String in

            return new.count < 254 ? new : previous ?? String(new.prefix(254))
        }
        .subscribe(textView.rx.text)
        .disposed(by: disposeBag)