RxSwift / RxCocoa:防止UITextField包含多个……字符

我想有一个UITextField配置Rx Swift / RxCocoa,以便它只包含…字符.我不想为此使用UITextFieldDelegate,但很想用RxSwift / RxCocoa实现这一点.有没有办法做到这一点?
当然:
textField.rx.controlEvent(.editingChanged).subscribe(onNext: { [uNowned self] in
    if let text = self.textField.text {
        self.textField.text = String(text.prefix(40))
    }
}).disposed(by: disposeBag)

在此示例中,文本字段限制为40个字符.

编辑:

达到限制时保持先前的值.

textField.rx.text.orEmpty
.scan("") { (prevIoUs,new) -> String in
    if new.count > 40 {
        return prevIoUs ?? String(new.prefix(40))
    } else {
        return new
    }
}
.subscribe(textField.rx.text)
.disposed(by: disposeBag)

这可能适合尊重其他规则……

但请注意,当达到字符限制时,光标将跳转到textField的末尾.

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...