下面的代码在iOS 17.0.1中运行良好,但在最新的更新中,当我们点击17.1 DatePicker 时,它不会打开。
经过几次尝试,我发现长按大约 2-3 秒,它会打开日期选择器。
这个问题有什么解决办法吗?如何仅在点击时打开?
VStack(alignment: .leading){
Text("Date".localized())
.applyFont(style: .Medium, size: 18)
.foregroundColor(Colors.grayLight)
HStack{
let lastYear = Calendar.current.date(byAdding: .year, value: -1, to: Date()) ?? Date()
if let date = checkLowerBound(){
DatePicker("",selection:$selectedDate, in: date...Date(), displayedComponents: [.date])
.frame(width: 100)
}else{
DatePicker("",selection:$selectedDate, in: lowestDate...Date(), displayedComponents: [.date])
.frame(width: 100)
}
Spacer()
}
.padding(.horizontal, 10)
}
.cardProperty()
.allowsHitTesting(!(eventTransaction != nil && eventTransaction?.by != UserDefaults.userID))
Run Code Online (Sandbox Code Playgroud) 我们正在使用 xcode 11 beta 5 中的催化剂 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
}
Run Code Online (Sandbox Code Playgroud) 我们正在使用Xcode 11中的Catalyst 将基于Swift的iOS应用转换为Mac兼容。
用户调整应用程序窗口大小时,我们在UI中遇到问题。那么我们可以禁用调整大小模式并为应用程序窗口提供修复框架吗?
swift ×2
uikitformac ×2
xcode11 ×2
catalyst ×1
datepicker ×1
mac-catalyst ×1
swiftui ×1
uidatepicker ×1