【问题标题】:Swiftui - Disable Keyboard from showing up for TextFieldSwiftui - 禁止键盘出现在 TextField 中
【发布时间】:2022-01-05 16:35:06
【问题描述】:

对于 swiftui,是否有任何东西可以禁用/防止键盘出现在 TextField 中?

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

【问题讨论】:

  • 如果您不想让用户输入,请使用Text

标签: swiftui keyboard textfield disable


【解决方案1】:

您可以将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

【讨论】:

    【解决方案2】:

    如果您已经有TextField 设置,您可以添加.disabled(true), 这将阻止键盘显示。

    TextField("", text: $txt)
       .disabled(true)  // <--- here
    

    【讨论】:

      猜你喜欢
      • 2021-08-04
      • 2019-10-22
      • 2020-05-17
      • 2020-01-18
      • 1970-01-01
      • 2022-09-29
      • 1970-01-01
      • 1970-01-01
      • 2021-05-22
      相关资源
      最近更新 更多