Swiftui - 禁用键盘在 TextField 中显示

标签 swiftui keyboard textfield disable

对于 swiftui,有什么可以禁用/阻止键盘在 TextField 中显示吗?

因为我正在设计一个计算器并从设计而不是键盘获取输入

最佳答案

您可以将 UITextFieldUIViewRepresentable 结合使用,这样您就可以阻止键盘显示。

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
        }
    }
}

引用:Prevent Keyboard from appearing when tapping on UITextField

关于Swiftui - 禁用键盘在 TextField 中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70584234/

相关文章:

macos - 无法在 emacs 中输入大括号和方括号

windows - 如何将 key 重复率提高到操作系统的限制之外?

textfield - Flutter Web - 文本字段滚动而不是选择长文本

core-data - @Binding - 将 FetchedResults、单个实体传递给 Core Data + SwiftUI 中的 subview

uikit - 使自定义 SwiftUI View 适应内置修饰符

swiftui - 为什么 SwiftUI "Form"会导致我的按钮转到屏幕底部?

ios - 在 Swift 中按下特定的键盘按钮

arduino - 从网络服务器 ESP8266 的文本字段中获取值

javascript - 如何在 HTML 输入文本字段中输入换行符?

macos - 使用@AppStorage保存字符串数组