ios - 如何在 RxSwift 方式中实现 shouldChangeText
问题描述
有没有办法以shouldChangeTextIn
UITextView
RxSwift 的方式实现 的委托方法?我的目标是限制用户的文本输入。我只有这个:
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)
解决方案
尝试这个:
textView.rx.text.orEmpty
.scan("") { (previous, new) -> String in
return new.count < 254 ? new : previous ?? String(new.prefix(254))
}
.bind(to: textView.rx.text)
.disposed(by: disposeBag)
推荐阅读
- image - X3DOM 页面上 64 幅图像不在线显示 -- 本地工作
- ios - 在 SwiftUI NavigationView 中添加多个标题
- anaconda - 在 Ubuntu 20.04 中,conda 给出了 Permission denied 错误
- django - Django Rest Framework Jwt + 路由器
- c# - MailBee Imap.Connect 引发算术运算导致溢出错误
- odoo - Odoo 14 CE 中的可选依赖项
- php - 为什么无法将二维码图像保存到服务器的文件夹中?
- vue.js - 无法解析模块说明符“@vue/composition-api”。相对引用必须以“/”、“./”或“../”开头
- python - 熊猫没有将两个不同的列信息匹配在一起
- node.js - 在猫鼬中找到所有