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

tvOS 17中SwiftUI Alert添加TextField后出现额外按钮的问题

tvOS 17 SwiftUI Alert 含 TextField 时出现额外无响应按钮的问题及解决方法

问题复现

在tvOS 17模拟器中,使用SwiftUI的Alert组件并同时添加TextField和Button时,会额外出现一个显示TextField绑定变量当前值的无响应按钮,而tvOS 16中不存在该异常。

解决方法

调整Alert内元素的顺序,将TextField放在Button之前即可解决此问题。修改后的代码如下:

Button { 
    showAlert = true
} label: {
    Image(systemName: "plus")
}
.alert("Add", isPresented: $showAlert) {
    TextField("Enter URL", text: $url)
        .keyboardType(.URL)
    Button("OK", action: addFunction)
}

原因分析

tvOS 17对SwiftUI Alert的组件渲染逻辑做了调整,当操作按钮位于输入框之前时,系统错误地将输入框的绑定文本值解析成了一个额外的按钮控件。调整元素顺序后,系统能正确识别输入框和操作按钮的结构,避免生成多余的无响应按钮。

iOS 17相关情况

在iOS 17上测试相同代码,不会出现这个额外按钮的问题,该异常目前仅局限于tvOS 17的Alert组件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 21:32:40