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

tvOS SwiftUI TextField输入内容后出现错位问题求助

tvOS SwiftUI TextField输入内容后出现错位问题求助

嘿,各位大佬好!我最近在做tvOS的SwiftUI项目时碰到个挺闹心的问题,想请大家支支招:

我用了一个TextField,占位符“Search the web...”显示的时候对齐得特别规整,但只要用户一输入内容,这个输入框就会莫名多出一点高度,而且输入的文字还会往上偏移,看起来特别别扭。我感觉这个问题的根源和之前看到的某个UIKit相关问题类似,但那个解决方案是针对UIKit的,我现在需要SwiftUI里的修复思路,有没有人能给点建议呀?

对了,我的代码没什么复杂逻辑,就算去掉那些样式参数,问题还是存在,代码如下:

TextField("Search the web...", text: $query)
    .font(.system(size: 40, weight: .semibold))
    .focused($searchFocused)
    .background(
        Color("Background Reverse")
            .cornerRadius(10)
            .opacity(searchFocused ? 0 : 0.25)
    )

我自己瞎琢磨了几个可能的方向,不知道有没有用:

  • 试试给TextField固定高度,比如加上.frame(height: 60)(具体数值可以根据你的字体大小调整),毕竟tvOS上的TextField可能在获取输入后会自动调整内在内容尺寸,固定高度能强制约束它的布局
  • 调整文字的垂直对齐方式,比如加上.multilineTextAlignment(.center),或者用alignmentGuide自定义垂直对齐的基准线,让输入文字和占位符保持同一位置
  • 如果上面的方法都不管用,或许可以考虑用UIViewRepresentable封装一个UIKit的UITextField,虽然麻烦点,但能完全掌控布局细节,避开SwiftUI TextField的这个小bug

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 11:03:07