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

macOS下SwiftUI中移除TextField选中时高亮的方法

移除macOS TextField选中时的深色高亮效果

要移除macOS平台上TextField选中时的默认深色高亮(焦点环),可以通过添加.focusRing(.hidden)修饰符实现,修改后的代码如下:

struct CustomView: View {
    
    @State private var prompt = ""
    
    var body: some View {
        List {
            TextField("Prompt", text: $prompt, axis: .vertical)
                .lineLimit(10)
                .padding(4)
                .background(Color.secondary.opacity(0.28))
                .cornerRadius(4)
                .frame(maxWidth: .infinity)
                .focusRing(.hidden) // 禁用默认焦点环高亮
        }
    }
}

补充说明

  • .focusRing(.hidden)是SwiftUI针对macOS(及iOS 15+)提供的修饰符,专门控制焦点环显示状态,设置为.hidden即可完全移除选中时的深色高亮。
  • 若需兼容更早系统版本,也可使用.textFieldStyle(.plain),但该修饰符会移除TextField所有默认样式,需确保你的自定义背景已完全替代默认样式:
    TextField("Prompt", text: $prompt, axis: .vertical)
        // ...其他修饰符
        .textFieldStyle(.plain)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 22:52:09