SwiftUI:如何在使用 DatePicker 后隐藏键盘

SwiftUI: How to hide keyboard after using DatePicker

用户在 DatePicker 中选择某个日期后如何隐藏键盘?

目前,当我点击名称 TextField,然后 - 显示键盘 - 我点击 DatePicker,当 DatePicker 的用于选择日期的弹出 window 出现时,键盘隐藏,但在我选择一些日期之后DatePicker 的弹出 window,键盘再次出现。

如何才能使在 DatePicker 的弹出窗口中提交值后键盘不再出现 window?

import SwiftUI

struct EditView: View {
    @Binding var name: String
    @State private var birthday: Date = Date()
    
    @FocusState private var isTextFieldFocused
    
    var body: some View {
        Form {
            TextField("Name", text: $name)
                .focused($isTextFieldFocused)
            DatePicker("Birthday", selection: $birthday)
        }
    }
}

struct EditView_Previews: PreviewProvider {
    static var previews: some View {
        EditView(name: .constant(String("Joe")))
    }
}

FocusState 不是必需的,添加视图扩展以隐藏键盘

struct EditView: View {
@Binding var name: String = ""
@State private var birthday: Date = Date()
//@FocusState private var isTextFieldFocused

        var body: some View {
            Form {
                TextField("Name", text: $name)
                DatePicker("Birthday", selection: $birthday)
            }
            .onTapGesture {
                hideKeyboard()
            }
        }
}
extension View {
    func hideKeyboard() {
        UIApplication.shared.sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil)
    }
}