DisclosureGroup内TextField无法聚焦编辑,移除Button后恢复正常
这是Xcode14.0.1搭配iOS15时的已知UIKit交互冲突Bug——DisclosureGroup内部的Button会抢占TextField的触摸响应优先级,导致TextField无法获取焦点、无法编辑。移除Button后,TextField能正常获取触摸事件,自然恢复编辑功能。
以下是几个可行的修复方案:
方案1:给Button添加zIndex层级
通过提升Button的触摸层级,确保它的交互区域不会干扰TextField:Button("Just a button") { isShowingSheet.toggle() } .buttonStyle(.bordered) .zIndex(1) // 添加这一行方案2:用容器视图包裹Button
将Button放入HStack/VStack等容器中,打破原有的响应链冲突逻辑:HStack { Button("Just a button") { isShowingSheet.toggle() } .buttonStyle(.bordered) }方案3:显式指定Button的控件尺寸
调整Button的controlSize,修正其交互区域的判定规则:Button("Just a button") { isShowingSheet.toggle() } .buttonStyle(.bordered) .controlSize(.regular) // 显式指定尺寸方案4:升级开发环境
苹果在iOS16及后续系统、Xcode14.3及更高版本中修复了这个Bug,升级后即可彻底解决问题。
内容的提问来源于stack exchange,提问作者Paul B
相关产品推荐
相关产品推荐

