用户在 DatePicker 中选择某个日期后如何隐藏键盘?
目前,当我点击名称 TextField,然后 - 显示键盘 - 我点击 DatePicker 时,当出现用于选择日期的 DatePicker 弹出窗口时,键盘会隐藏,但当我在 DatePicker 弹出窗口中选择某个日期后,键盘会再次出现。
如何才能让在DatePicker的弹出窗口中提交值后键盘不再出现?
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)
}
}
为什么它对我不起作用?由于某种原因,它似乎阻止了其他领域的工作。对我来说,只有切换有效,有时是扩展选择器的按钮,但日期选择器根本不起作用...... 我本来想发视频,但好像只能发图片