SwiftUI普通TextField如何隐藏键盘上方的单词建议栏?
解决方案
普通TextField仅设置disableAutocorrection(true)无法完全隐藏建议栏,需要搭配多个修饰符共同使用,不同系统版本对应方案如下:
全iOS版本通用方案
同时添加以下3个修饰符即可生效:
TextField("请输入", text: $inputText) .disableAutocorrection(true) .autocapitalization(.none) .disableSpellChecking(true)
如果仍有残留的建议栏,可额外指定键盘类型:
.keyboardType(.asciiCapable)
iOS 15+ 专用简化方案
可以使用新版统一修饰符替代旧版多参数设置:
TextField("请输入", text: $inputText) .textInputAutocorrection(.never) .textInputAutocapitalization(.never)
极端场景兜底方案
如果上述系统修饰符都不生效,可以通过桥接UIKit的UITextField实现完全控制:
struct NoSuggestionTextField: UIViewRepresentable { @Binding var text: String var placeholder: String func makeUIView(context: Context) -> UITextField { let textField = UITextField() textField.placeholder = placeholder textField.autocorrectionType = .no textField.autocapitalizationType = .none textField.spellCheckingType = .no // 直接清空输入辅助栏所有按钮组,彻底隐藏建议栏 textField.inputAssistantItem.leadingBarButtonGroups = [] textField.inputAssistantItem.trailingBarButtonGroups = [] return textField } func updateUIView(_ uiView: UITextField, context: Context) { uiView.text = text } } // 使用方式 NoSuggestionTextField(text: $inputText, placeholder: "请输入")
内容的提问来源于stack exchange,提问作者WY34
相关产品推荐
相关产品推荐

