首页 > 解决方案 > 在 SwiftUI 中手动显示/隐藏 DatePicker 轮

问题描述

我想在敲出文本字段时关闭键盘,以便为该文本字段下方的选择器留出空间。

struct ContentView: View {
    @State private var date = Date()
    @State private var text = "write something...."

    var body: some View {
        Form {
            Section {
                TextField(text, text: $text)
            }

            Section {
                DatePicker(selection: $date, displayedComponents: .date, label: { Text("select a date")})
                .onTapGesture {
                    self.dismissKeyboard()
                }
            }
        }

    }

    func dismissKeyboard() {
        UIApplication.shared.sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil)
    }
}

问题是.onTapGesture确实关闭了键盘,但没有显示选择器轮。那么,有没有办法在关闭键盘后调用隐藏轮呢?

标签: datepickershow-hideswiftui

解决方案


使用.onAppear代替.onTapGesture

 DatePicker(selection: $date, displayedComponents: .date, label: { Text("select a date")})
   .onAppear {
      self.dismissKeyboard()
   }

推荐阅读