首页 > 解决方案 > SwiftUI TextEditor 如何隐藏键盘

问题描述

我对 TextEditor 有问题,在 Texteditor 上编辑文本后无法隐藏键盘。

    @State var monTexte: String = "
var body: some View {
        VStack {
            Spacer()
                .frame(height :15)
                .clipped()
            Text("Project ")
                .font(Font.system(size: 39.00))              
               .fontWeight(.black)
                .foregroundColor(Color.white)
                .multilineTextAlignment(.center)
                .padding(.all, 16.0)
                .clipped()
            
            TextEditor(text: $monTexte)
                .keyboardType(.alphabet)
                .font(.subheadline)
                .padding(.horizontal)
                .font(Font.system(size: 38.00))
                .frame(minWidth: 10, maxWidth: .infinity, minHeight: 10, maxHeight: 200, alignment: .topLeading)
                .border(Color.black)
                .clipped()
}
}
} 

我找到了一种使用文本字段而不是使用 TextEditor Coule 隐藏键盘的方法,请您帮帮我

标签: swiftuitext-editor

解决方案


谢谢“Asperi”,它使用下面的代码工作:

var body: some View {
        VStack {
            Spacer()
                .frame(height :15)
                .clipped()
            Text("Project ")
                .font(Font.system(size: 39.00))              
               .fontWeight(.black)
                .foregroundColor(Color.white)
                .multilineTextAlignment(.center)
                .padding(.all, 16.0)
                .clipped()
                        HStack {
                Spacer()
                Button("Close Keyboard") {
                    UIApplication.shared.endEditing()

                }.font(Font.system(size: 20))
                .foregroundColor(Color.blue)
                
            }.clipped()
            TextEditor(text: $monTexte)
                .keyboardType(.alphabet)
                .font(.subheadline)
                .padding(.horizontal)
                .font(Font.system(size: 38.00))
                .frame(minWidth: 10, maxWidth: .infinity, minHeight: 10, maxHeight: 200, alignment: .topLeading)
                .border(Color.black)
                .clipped()
}
}
} 

//----------------------------------------------------//
// Masquer le clavier
//----------------------------------------------------//
extension UIApplication {
    func endEditing() {
        sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil)
    }
}```

推荐阅读