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

SwiftUI中TextField无用户干预自动变更内容的异常问题

SwiftUI TextField 内容自动异常变更问题

问题现象

  • 复现场景:新建SwiftUI应用,仅包含2个绑定@State变量的TextField和一个用于打印值的Button(移除Button问题仍存在)
  • 核心异常行为:
    • 在模拟器中,向第一个TextField输入Bb,切换到第二个TextField时,Bb自动变为Vv
    • 输入Dd后点击按钮,内容保持Dd并正常打印;切换到第二个TextField后,Dd自动变为Did,再次点击按钮会打印变更后的内容
    • 其他异常案例:Tt变为Ty,Oo变为Ok;但输入Do时无异常
    • 触发条件:每次测试需重启应用,否则返回第一个TextField重新输入Dd时内容不会变更;重启系统后问题仍存在
  • 键盘相关表现:
    • 硬件键盘、模拟器内置键盘均会触发异常
    • 使用硬件键盘时,若在选中TextField前按键,会出现两条「获取设备属性失败」的提示;选中TextField后输入则无额外提示
    • 使用模拟器键盘仅会打印正常的输入日志
  • 设备差异:
    • iPhone 12模拟器中,Dd变为首字母大写的Did
    • iPad Pro 9.7英寸及iPad Air模拟器中,Dd变为首字母小写的did
  • 额外验证:移除预览视图后问题依旧存在

复现代码

import SwiftUI
struct ContentView: View {
  @State private var nameX = ""
  @State private var displayName = ""
  var body: some View {
    VStack{
      TextField("Player Name", text: $nameX)
      TextField("Player Display Name", text: $displayName)
      Button ("save") {
        print (nameX)
      }
    }
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 13:39:22