SwiftUI中如何关闭TextField的自动大写功能?
在SwiftUI中关闭TextField自动大写的正确方法
你通过Info.plist设置UITextAutocapitalizationType为None没生效,是因为SwiftUI的TextField有自己独立的配置修饰器,全局plist设置对它不生效。直接给目标TextField添加专属修饰器就能解决问题:
基础实现
给TextField加上.autocapitalization(.none)修饰器即可:
@State private var inputText = "" var body: some View { TextField("请输入内容", text: $inputText) .autocapitalization(.none) }
额外优化(可选)
如果还想关闭自动纠错功能,可以搭配.autocorrectionDisabled():
TextField("请输入内容", text: $inputText) .autocapitalization(.none) .autocorrectionDisabled()
这个修饰器会直接覆盖全局设置,确保当前TextField完全不会触发自动大写。如果需要全局统一设置所有SwiftUI TextField的行为,可以自定义一个TextField扩展或者样式,但单个设置的灵活性更高。
内容的提问来源于stack exchange,提问作者János
相关产品推荐
相关产品推荐

