You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SwiftUI中提交后如何正确清空TextField?

解决TextField提交后清空但保留记录文本的问题

你当前代码的问题很明显——同一个@State变量loggedText既绑定了TextField输入,又用来存要显示的记录,提交后清空它,自然连已经显示的记录也一起删了。

直接拆分两个状态变量就能解决:一个管输入框的临时内容,一个管保存已提交的记录。修改后的代码如下:

@State private var inputText: String = ""
@State private var savedText: String = ""
@State private var showLoggedText = false

var body: some View {
    VStack {
        if showLoggedText {
            Text(savedText)
        }
        
        HStack {
            TextField(
                "Add new set",
                text: $inputText
            )
            .onSubmit {
                savedText = inputText
                showLoggedText = true
                inputText = ""
            }
        }
    }
}

关键改动说明:

  • 新增inputText专门绑定TextField,负责临时存储用户输入的内容
  • savedText用来保存提交后的记录,不会被清空
  • 提交时把输入框的内容转存到savedText,再清空inputText,这样显示的记录完全不受影响

内容的提问来源于stack exchange,提问作者acerblaze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 19:01:14