[英]Swiftui - Disable Keyboard from showing up for TextField
对于 swiftui 是否有任何东西可以禁用/防止键盘出现在 TextField 中?
因为我正在设计一个计算器并从设计而不是键盘获取输入
您可以将UITextField
与UIViewRepresentable
一起使用,这样您就可以阻止键盘显示。
import SwiftUI
struct KeyboardView: View {
@State var text: String = ""
@State var placHolder: String = "Enter username"
var body: some View {
VStack {
Spacer()
MyTextField(currentText: $text, placeHolder: $placHolder)
.padding(.horizontal, 40.0)
Spacer()
}
}
}
struct MyTextField: UIViewRepresentable {
@Binding var currentText: String
@Binding var placeHolder: String
func makeUIView(context: Context) -> UITextField {
let textField = UITextField()
textField.inputView = UIView() // hiding keyboard
textField.inputAccessoryView = UIView() // hiding keyboard toolbar
textField.placeholder = placeHolder
textField.textColor = UIColor.black
textField.font = UIFont.systemFont(ofSize: 22.0)
textField.delegate = context.coordinator
return textField
}
func updateUIView(_ textField: UITextField, context: Context) {
textField.text = currentText
}
func makeCoordinator() -> Coordinator {
Coordinator(text: $currentText)
}
class Coordinator: NSObject, UITextFieldDelegate {
@Binding var text: String
init(text: Binding<String>) {
self._text = text
}
}
}
如果您已经设置了TextField
,则可以添加.disabled(true)
,这将阻止键盘显示。
TextField("", text: $txt)
.disabled(true) // <--- here
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.