【发布时间】:2018-08-14 02:52:45
【问题描述】:
我有一个项目,我需要在应用程序启动设置中切换语言环境,但是经过几次测试后,我意识到当我更改为英语以外的另一种语言时,日期选择器.maximum/minimum 不起作用。我正在使用 radianttap 的语言切换器框架在设置/登录屏幕上切换语言环境。
语言切换代码:
func checkLanguageSelected(langSelected: String){
switch langSelected {
case "English":
Locale.updateLanguage(code: "en")
case "မြန်မာ":
Locale.updateLanguage(code: "my")
default:
break
}
}
这是我设置日期选择器的代码:
let datePickerView:UIDatePicker = UIDatePicker()
datePickerView.datePickerMode = UIDatePickerMode.date
//datePickerView.locale = NSLocale.init(localeIdentifier: "en") as Locale
let maxDateString = "01-Jan-2006"
let minDateString = "01-Jan-1916"
let dateFormatter:DateFormatter = DateFormatter()
//dateFormatter.locale = NSLocale.init(localeIdentifier: "en") as Locale
dateFormatter.dateFormat = "dd-MM-yyyy"
let maxDate:Date? = dateFormatter.date(from: maxDateString)
let minDate:Date? = dateFormatter.date(from: minDateString)
datePickerView.maximumDate = maxDate
datePickerView.minimumDate = minDate
dateOfBirth.inputView = datePickerView
datePickerView.addTarget(self, action: #selector(datePickerFromValueChanged(sender:)), for: UIControlEvents.valueChanged)
我在编辑时使用链接到 IBAction 的 UITextfield 开始在文本字段“dateOfBirth”上显示日期选择器。有人知道吗?只要应用程序以英语启动,那么最大/最小日期就可以使用,但它不适用于其他语言。我尝试将 datepicker 和 dateformatter 的语言环境都设置为“en”,但它也打破了 datepicker 在英语设置中的最大/最小日期。 有人遇到过这种问题吗?
【问题讨论】:
-
您是否尝试过仅在日期格式化程序上设置区域设置“en”?初始值来自公历。 “我的”应该使用另一个日历,并且可以使用 Date 对象在日历之间传递值。顺便说一句,它是如何破坏的,只是忽略了值吗?
-
哇,好的,我尝试了你的建议并且它有效,然后我想弄乱 abit 并更改日期选择器的语言环境,因为“我的”日期选择器日历不是官方月份名称,所以我没有注释掉更改日期选择器语言环境的行,并且它也以某种方式工作。显然重新启动 xcode 将修复错误(但清理项目不会')。很奇怪。无论如何感谢您的意见。
标签: ios swift uidatepicker