gpt4 book ai didi

swift - RxSwift/RxCocoa : prevent UITextField from having more than . .. 字符

转载 作者:IT王子 更新时间:2023-10-29 05:34:19 24 4
gpt4 key购买 nike

我想用 RxSwift/RxCocoa 配置一个 UITextField,这样它最多只包含 ... 个字符。我不想为此使用 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)

这可能会适应其他规则...

但是请注意,当达到字符限制时,您的光标将跳到文本字段的末尾。

关于swift - RxSwift/RxCocoa : prevent UITextField from having more than . .. 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48790405/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com