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
相关产品推荐
相关产品推荐

