【发布时间】:2023-03-29 08:16:01
【问题描述】:
我有一个要验证的文本字段,我想在用户输入时禁用按钮。用户停止输入后(反跳 1 秒),将执行验证并根据结果有条件地启用按钮。请注意当用户只输入一个字符时的极端情况,仍然应该进行验证。
--"a"-"ab"-"abc"------------------"ab"--"a"------------------"ab"-----------------
--false---------validate("abc")---false----validate("a")-----false--validate("ab")
这个 SO (Deliver the first item immediately, 'debounce' following items) 在 RxJava 中提出了以下解决方案。但它似乎只返回第一个元素,而不是当用户在去抖动后再次开始输入时?如果我错了,请纠正我
Observable.from(items).publish(publishedItems ->
publishedItems.limit(1).concatWith(
publishedItems.skip(1).debounce(1, TimeUnit.SECONDS)
)
)
【问题讨论】:
-
您是否希望在用户输入时禁用按钮,并在输入完成后与验证功能的结果相匹配?
-
没错,他们是否完成打字是由
debounce决定的
标签: ios swift rx-swift rx-cocoa