uitextfield - 使用 swiftUI 如何仅在 textField 处于编辑模式时添加 datePicker?
问题描述
我现在在里面添加了 datePicker HStack
。我只想datePicker
在textField
处于编辑模式时显示。
struct EditProfile: View {
@Binding var profile: Profile
var body: some View {
List {
HStack {
Text("Username").bold()
TextField("Date")
DatePicker(
$profile.goalDate,
minimumDate: Calendar.current.date(byAdding: .year, value: -1, to: profile.goalDate),
maximumDate: Calendar.current.date(byAdding: .year, value: 1, to: profile.goalDate),
displayedComponents: .date
)
}
}
.padding(.top)
}
.padding(.top)
}
解决方案
您可以onEditingChanged
与绑定一起使用以获得所需的效果。
struct EditProfile : View {
@Binding var profile: Profile
@State var showDatePicker = false
@State var textfieldText: String = ""
var body: some View {
List {
HStack {
Text("Username").bold()
TextField($textfieldText, placeholder: Text("Date"), onEditingChanged: { (editting) in
self.showDatePicker = editting
}) {
}
if self.showDatePicker {
DatePicker(
$profile.goalDate,
minimumDate: Calendar.current.date(byAdding: .year, value: -1, to: profile.goalDate),
maximumDate: Calendar.current.date(byAdding: .year, value: 1, to: profile.goalDate),
displayedComponents: .date
)
}
}
}
.padding(.top)
}
}
推荐阅读
- arrays - 在交换序列后查找每个节点占用的唯一位置的数量
- elixir - 如何关闭 Elixir/Phoenix 表单中输入的自动完成功能?
- python - 从 requests.get "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)" 接收错误
- discord.js - Welcome message embed Discord.js
- python-3.x - 我想要一种方法来“重试”错误的用户输入。有没有办法做到这一点?
- python - win32api.ShellExecute() 函数有什么作用?
- c++ - 模板参数扣除/替换失败:
- swift - 带有错误委托方法的 Swift 协议扩展仍然有效(?!)
- sql - SQL窗口函数和连接
- django - Django 错误:找不到“登录”的反向。“登录”不是有效的视图函数或模式名称