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

Xcode14(iOS16)中@FocusState无法通过Button聚焦TextField问题

解决Xcode 14 Beta 5中SwiftUI按钮无法将焦点设置到TextField的问题

你的代码逻辑本身是正确的,但在Xcode 14 Beta 5(版本14A5294e)这个测试版本中,直接在Button的action里设置@FocusState变量会存在视图更新时机冲突的问题,导致焦点无法正确触发。

可以通过将焦点设置操作放到主队列的异步任务中来规避这个Beta版本的bug,修改后的代码如下:

@FocusState private var isTexting: Bool
@State private var text: String = ""

var body: some View {
    VStack(spacing: 0) {
        TextField("00000000", text: $text)
            .focused($isTexting)
        Button {
            DispatchQueue.main.async {
                isTexting = true
            }
        } label: {
            Text("start texting")
        }
    }
    .frame(maxWidth: .infinity, maxHeight: .infinity)
}

这个问题属于Xcode测试版本的已知兼容性问题,后续正式版本应该会修复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 17:57:14