datepicker - 在 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
确实关闭了键盘,但没有显示选择器轮。那么,有没有办法在关闭键盘后调用隐藏轮呢?
解决方案
使用.onAppear
代替.onTapGesture
DatePicker(selection: $date, displayedComponents: .date, label: { Text("select a date")})
.onAppear {
self.dismissKeyboard()
}
推荐阅读
- html - 获取文本部分到 xpath 中的特定标签
- excel - 使用 VBA 将超链接字段写入循环内的另一个工作表范围
- postgresql - 通过 @NamedStoredProcedureQuery 使用 Spring 数据 JPA 调用 postgres 函数时出错
- c++ - clang 格式 AlignAfterOpenBracket 列表参数
- flutter - 为什么我的 DropdownButtonFormField 不显示项目?
- java - 我想通过在 java 中显示多个 BankaccountNames 来显示员工姓名
- amazon-web-services - Amazon Redshift:查询在空闲期后永远不会完成运行
- keras - 二进制文本分类:为什么 LSTM 无法拟合,而 Dense net 拟合正常?
- oracle - 安装 Oracle ODAC 12.2.0.1 崩溃并在 W10 中完成
- flutter - Flutter Table Calendar (v.3.0.2) : 根据日期显示来自 REST API 的所有数据