【发布时间】:2023-10-22 09:51:01
【问题描述】:
我注意到了
textField.publisher(for: \.text)
在编辑完成时提供事件,但不是针对每个字符/编辑更改。我如何获得发布者,为每次更改发送偶数? 在 ReactiveSwift 中它会是
textField.reactive.continousTextValues()
在 RxSwift 中它只是 (How do you get a signal every time a UITextField text property changes in RxSwift)
textField.rx.text
我采取的方法:
- 正在检查
publisher(for:options:)方法,但没有合适的选项来获得所需的结果。 - 添加目标/操作
textField.addTarget(self, action: #selector(theTextFieldDidChange), for: .editingChanged)(UITextField text change event) - 通过界面生成器连接动作,与上一步基本相同,这都会导致额外的工作和混乱的代码。
- 观看有关 Combine 的 2019 年 WWDC 视频。他们不是在处理文本字段,而是使用
@Published变量,隐藏值实际上来自 - (或者我错过了什么?)。
目前我不知道如何做到这一点,我觉得有回到 ReactiveSwift 的倾向,但我想在退后一步之前问你。
【问题讨论】:
-
为什么不用
TextField而不是UITextField?这会在每个字符更改时更新其text绑定。 -
OP 很有可能不(想要)使用 SwiftUI
标签: ios swift uitextfield combine