对于支持多个场景的应用程序,如何使用SwiftUI隐藏.phonePad类型的键盘?

时间:2019-09-05 10:07:58

标签: swift textfield swiftui dismiss ios13

在完成编辑后或者当用户在.phonePad之外点击时,我想关闭类型为TextField的键盘

TextField("Phone Number", text: $call.phoneNumber).keyboardType(.phonePad)

我该如何在SwiftUI中做到这一点?

2 个答案:

答案 0 :(得分:0)

我要做的就是在视图控制器上放一个按钮,使其全屏显示。在文档大纲中,将其向上移动,使其位于任何文本字段,按钮等的后面,并作为操作使用view.endEditting(true)。

答案 1 :(得分:0)

此解决方案结束:

TextField("Phone", text: $callSettings.phoneNumber)

                .keyboardType(.phonePad)
                .onTapGesture {
                    let keyWindow = UIApplication.shared.connectedScenes
                                       .filter({$0.activationState == .foregroundActive})
                                       .map({$0 as? UIWindowScene})
                                       .compactMap({$0})
                                       .first?.windows
                                       .filter({$0.isKeyWindow}).first
                    keyWindow!.endEditing(true)

             }