【问题标题】:UIDatePicker Not working In macCatalyst (Xcode 11 Beta 5)UIDatePicker 在 macCatalyst 中不起作用(Xcode 11 Beta 5)
【发布时间】:2019-08-09 07:19:44
【问题描述】:

我们正在使用 xcode 11 beta 5 中的 Catalyst swift 将我们的 iOS 应用程序转换为与 macCatalyst 兼容的应用程序。

我们遇到了默认 DatePicker 未显示在窗口中的问题。

我正在为 mac 尝试这个解决方案,它会在视图中添加日期选择器,但我想要另一个合适的解决方案。还有什么建议吗?

func datepickerWillLoad() {
        self.datePicker.datePickerMode = .date
        self.datePicker.maximumDate = Date()
        self.datePicker.backgroundColor = UIColor.Theme.lightBackground
        self.datePicker.setValue(UIColor.Theme.whiteColor, forKeyPath: "textColor")
        self.datePicker.addTarget(self, action: #selector(didChangedDatePickerValue), for: .valueChanged)

        //if user open picker and without change click on done
        self.dateOfBirthTextField.addTarget(self, action: #selector(didChangedDatePickerValue), for: .editingDidEnd)

        #if targetEnvironment(macCatalyst)
            datePicker.frame = CGRect(x: 0, y: self.view.frame.height - 200 , width: self.view.frame.width, height: 200)
            self.view.addSubview(datePicker)
        #else
            self.dateOfBirthTextField.inputView = datePicker
        #endif
    }

【问题讨论】:

  • 这对你有用吗?我可以让日期选择器正常工作。
  • 好的,我会检查相同的...谢谢。
  • 我有相同的设置,但无法解决这个问题。你有解决办法吗?
  • 我已经做了和上面一样的,我没有尝试任何其他的解决方案
  • @HardikThakkar 你能在 MacOS 10.15.4 上看到 UIDatePicker 吗?在以前的 MacOS 中,曾经有一个普通的 iOS UIDatePicker,我将它添加到表格视图单元格中。现在,我看到的不是 iOS 选择器,而是 MacOS 原生日期选择器(类似日历)。

标签: swift uidatepicker catalyst xcode11 uikitformac


【解决方案1】:

在我看来,问题的原因是 UIDatePicker 已重新设计为 compact 控制器,而不是 iOS 典型的 wheel(可能从 Mac Catalyst 13.4+ 开始) .因此,颜色方案无法再通过 setValue 函数应用于不存在的轮子并导致错误。

所以我尝试将滚轮模式恢复到我的 UIDatePicker。因此,我在我的 UIDatePicker 中添加了以下行,这为我解决了这个问题:

if #available(macCatalyst 13.4, *) {
    myDatePicker.preferredDatePickerStyle = .wheels
    myDatePicker.datePickerMode = .date
} else {
    // Fallback on earlier versions
}

对于早期版本,我以前没有这个问题,所以我希望解决方案很好,但是如果您也遇到早期版本的问题,请发表评论,以便我可以调整我的代码! :-)

注意:我注意到更改preferredDatePickerStyle 后datePickerMode 设置为默认模式,因此请确保之后强制使用datePickerMode!

【讨论】:

  • 这对我不起作用。甚至,紧凑的内联日期选择器也不起作用..它适用于我的 iOS 设备还有其他解决方案吗?
【解决方案2】:

我发现如果我设置日期选择器文本颜色 self.datePicker.setValue(UIColor.Theme.whiteColor, forKeyPath: "textColor") 然后这导致应用程序在加载视图时崩溃。尝试删除该行代码,它应该可以与 mac 催化剂一起使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-07
    • 1970-01-01
    • 2019-12-14
    • 2020-01-01
    相关资源
    最近更新 更多