繁体   English   中英

在 SwiftUI TextField 中检测退格键

[英]Detect Backspace in SwiftUI TextField

我已经看到其他关于如何在空的 UITextField (UIKit) 中检测退格键的问题。 但是,有没有一种简单的方法可以使用 SwiftUI 或使用 Introspect 来做到这一点? 使用已填充的文本字段执行此操作非常简单,但我无法找到一种方法来使用空文本字段执行此操作。

谢谢!

我无法发表评论,所以我将其作为答案。 即使它适用于 UIKit,您仍然可以将其包装在 UIViewRepresentable 中,以将其放置在您的 SwiftUI 代码中。 你可能已经知道了,所以如果你真的想要SwiftUI,你可能会在这里不走运。 希望更多 TextField 功能很快迁移到 SwiftUI。

已经很长时间了,但我想出了一个主意。 (并不是说我已经彻底测试过它)。 它是类似 Hack 的。

这个想法是将零宽度空间(ZWSP)添加到第一个字符。 通过始终添加 ZWSP,即使字符看起来为零,也会发生 onChange/onReceive,因为 ZWSP 实际上存在。

TextField("placeholder", text: $inputText)
  .onReceive(Just(number2)) { text in
    if !text.hasPrefix("\u{200B}") {
      inputText = "\u{200B}" + text
    }
    // other code
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM