gpt4 book ai didi

swift - UIDatePicker 在 macCatalyst 中不起作用(Xcode 11 Beta 5)

转载 作者:行者123 更新时间:2023-12-02 11:17:02 35 4
gpt4 key购买 nike

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

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

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

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
}

最佳答案

在我看来,问题的原因是 UIDatePicker 被重新设计为 紧凑型 Controller 而不是 iOS 典型 车轮 (可能从 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!

关于swift - UIDatePicker 在 macCatalyst 中不起作用(Xcode 11 Beta 5),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57425200/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com