【问题标题】:Using swiftUI how can i add datePicker only while textField is in editing mode?使用 swiftUI 如何仅在 textField 处于编辑模式时添加 datePicker?
【发布时间】:2019-06-07 06:36:56
【问题描述】:

我现在在 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)
}

【问题讨论】:

  • TextField.init中有onEditingChanged

标签: uitextfield uidatepicker swiftui vstack hstack


【解决方案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)
    }
}

【讨论】:

  • 这在 Beta 7 中仍然有效吗?当我尝试使用它时出现一个奇怪的错误(它想要 self.showDatePicker = editing 并将其更改为 self.showDatePicker == editing,这几乎不正确)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多