检测 SwiftUI TextField 中的退格键

gav*_*abe 1 swift swiftui

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

谢谢你!

Tos*_*uno 5

虽然已经过去很长时间了,但我想到了一个主意。(并不是说我已经彻底测试过)。它就像黑客一样。

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

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