Как установить стиль части textField объекта DatePicker - PullRequest
0 голосов
/ 19 апреля 2020

Я использовал DatePicker внутри формы, и он выглядит как на следующем изображении. Теперь, я надеюсь, он отображает «2020-4-19» вместо «19.04.20». Кто-то знает, как это сделать?

enter image description here

1 Ответ

0 голосов
/ 19 апреля 2020

Я не смог найти способ с помощью DatePicker по умолчанию, поэтому я взял код из Изменить выбранный формат даты из DatePicker SwiftUI

внес некоторые изменения, чтобы он работал. Этот CustomDatePicker должен делать то, о чем вы просили, даже внутри формы.

struct CustomDatePicker: View {
@State var text: String = "Date"
@Binding var date: Date
@State var formatString: String = "yyyy-MM-dd"

@State private var disble: Bool = false
@State private var showPicker: Bool = false
@State private var selectedDateText: String = "Date"

let formatter = DateFormatter()

private func setDateString() {
    formatter.dateFormat = formatString
    self.selectedDateText = formatter.string(from: self.date)
}

var body: some View {
    VStack {
        HStack {
            Text(text).frame(alignment: .leading)
            Spacer()
            Text(self.selectedDateText)
                .onAppear() {
                    self.setDateString()
            }
            .foregroundColor(.blue)
            .onTapGesture {
                self.showPicker.toggle()
            }.multilineTextAlignment(.trailing)
        }

        if showPicker {
            DatePicker("", selection: Binding<Date>(
                get: { self.date},
                set : {
                    self.date = $0
                    self.setDateString()
            }), displayedComponents: .date)
                .datePickerStyle(WheelDatePickerStyle())
                .labelsHidden()
        }
    }
}
}

struct ContentView: View {

@State var date = Date()

var body: some View {
    Form {
        Section {
            CustomDatePicker(text: "my date", date: $date, formatString: "yyyy-MM-dd")
        Text("test")
    }
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...