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

TextField输入异常:字符无法连续输入的技术问题求助

问题原因与修复方案

问题根源

你的ListVM中错误地使用了@State修饰textInput变量。@State是专门用于SwiftUI View结构体内部的状态修饰符,不能在ObservableObject类中使用。这种错误会导致状态管理混乱,进而出现输入第一个字符正常、后续输入异常的问题。

修复步骤

将ListVM里的@State替换为@Published——这是ObservableObject类中用于让SwiftUI监听属性变化的正确修饰符:

class ListVM: ObservableObject {
    @Published var textInput = "" // 把@State改成@Published
}

原理说明

  • @Published会自动为属性添加发布订阅能力,当textInput的值变化时,会通知所有绑定它的View(比如你的TextField)更新。
  • 你的FormView中用@StateObject持有ListVM实例是正确的,它能保证ViewModel在View生命周期内的稳定性。

修复后,TextField的输入就能正常同步到listVM.textInput中,不会再出现字符被删除、输入无响应的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 08:05:34