Используя swiftUI, как я могу добавить datePicker только тогда, когда textField находится в режиме редактирования?
Я добавил 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)
}
1 ответ
Решение
Вы можете использовать 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)
}
}