iOS 26中SwiftUI如何移除键盘上方的Glasstic边框?
移除iOS 26 SwiftUI应用键盘上方的Glasstic边框及内边距
在iOS 26中,SwiftUI的TextField唤起键盘时,顶部会出现Glasstic样式边框,同时伴随额外内边距导致键盘无法全屏显示。以下是两种可行的解决方法:
方法一:隐藏键盘工具栏(简洁方案)
直接通过SwiftUI内置修饰符隐藏键盘上方的工具栏,即可移除Glasstic边框和多余内边距:
struct EditTextExamplesView: View { @State private var name = "" var body: some View { TextField("Enter name", text: $name) .textFieldStyle(.roundedBorder) .toolbar(.hidden, for: .keyboard) // 隐藏键盘工具栏 } }
方法二:使用UIKit原生输入框包装(彻底方案)
如果需要完全规避SwiftUI TextField的默认行为,可以用UIViewRepresentable包装UIKit的UITextField,原生UIKit输入框不会附带该边框:
struct CustomTextField: UIViewRepresentable { let placeholder: String @Binding var text: String func makeUIView(context: Context) -> UITextField { let textField = UITextField() textField.placeholder = placeholder textField.borderStyle = .roundedRect textField.delegate = context.coordinator return textField } func updateUIView(_ uiView: UITextField, context: Context) { uiView.text = text } func makeCoordinator() -> Coordinator { Coordinator(self) } class Coordinator: NSObject, UITextFieldDelegate { let parent: CustomTextField init(_ parent: CustomTextField) { self.parent = parent } func textFieldDidChangeSelection(_ textField: UITextField) { parent.text = textField.text ?? "" } } } // 使用自定义输入框 struct EditTextExamplesView: View { @State private var name = "" var body: some View { CustomTextField(placeholder: "Enter name", text: $name) } }
内容的提问来源于stack exchange,提问作者Joya Roy
相关产品推荐
相关产品推荐

