清除 TextField 时如何恢复占位符文本

How to restore placeholder text when TextField is cleared

我在清除 TextField 后恢复 TextField 上的占位符文本时遇到问题。

除了我在这里找到的方法之外,还有其他更简单的恢复文本的方法吗?

干杯, 奥利弗

固定在 iOS 15

*考虑以下仅支持旧版本


正如我在其他主题中所写,这是当前的 SwiftUI 缺陷,因此目前只有解决方法是可能的。

这是一个对我有用的简单方法(我更喜欢这种方法,因为即使在该地区 fixes/changes 之后它仍然有效):

@State private var text: String = ""
@State private var refresh = false

var body: some View {
    VStack {
        TextField("Placeholder" + (refresh ? "" : " "), text: $text)
        Divider()
        Button("Clear") {
            self.text = ""
            self.refresh.toggle() // << force refresh placeholder explicitly
        }
    }
}