XID 11.3 UIDatePicker не отображается на iPad в темном режиме - PullRequest
0 голосов
/ 09 января 2020

У меня есть стандартный UIDatePicker в нескольких проектах. Пикер отлично работает на iPhone, а также на iPad в легком режиме. Весь сборщик (фон и текст) не отображается, когда iPad находится в темном режиме. Изменение цвета фона и переднего плана не имеет никакого эффекта. Это может быть ошибка Apple, но я надеюсь, что у кого-то есть обходной путь. Я просмотрел этот вопрос , но ответы не достаточно хороши - по сути, только с использованием легкого режима.

Для справки, код сборщика:

@IBOutlet var datePicker: UIDatePicker? = UIDatePicker()
//or @IBOutlet weak var datePicker: UIDatePicker!

override func viewDidLoad() {
    super.viewDidLoad()
    let defaults: UserDefaults = UserDefaults.standard
           let tempDate = defaults.value(forKey: "selectedDate") as! Date?

           let calendar: NSCalendar = NSCalendar(calendarIdentifier:  .gregorian)!
           calendar.timeZone = NSTimeZone(name: "UTC")! as TimeZone

           let components = calendar.components([.year, .month, .day], from: tempDate! as Date)

           defaultDate = calendar.date(from: components as DateComponents)!  as Date?
           self.datePicker?.date = defaultDate as Date

}

/*


override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(true)
    print(#function)

    let defaults: UserDefaults = UserDefaults.standard
    let tempDate = defaults.value(forKey: "selectedDate") as! Date?

    let calendar: NSCalendar = NSCalendar(calendarIdentifier:  .gregorian)!
    calendar.timeZone = NSTimeZone(name: "UTC")! as TimeZone

    let components = calendar.components([.year, .month, .day], from: tempDate! as Date)

    defaultDate = calendar.date(from: components as DateComponents)!  as Date?
    self.datePicker?.date = defaultDate as Date

    }
*/   


@IBAction func datePickerAction(sender: AnyObject) {

    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "EE. MMMM dd, yyyy"
    dateFormatter.timeZone = NSTimeZone.default
    dateString = dateFormatter.string(from: datePicker!.date)
    selectedDate = datePicker?.date
    selectedDateLabel.text = dateString
    print(#function, "selected date: ", selectedDate!)

}
...