使用 swiftUI 如何仅在 textField 处于编辑模式时添加 datePicker?

Using swiftUI how can i add datePicker only while textField is in editing mode?

我现在已经在 HStack 中添加了 datePicker。我只想在 textField 处于编辑模式时显示 datePicker

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)
    }
}