我在我的应用程序中使用NSDatePicker,但我的日期选择器在日期/月/小时/等方面没有零作为iCal的日期选择器。你可以看到我在下面两张图片中突出显示的部分所说的差异。
这是iCal的日期选择器:
这是我应用的日期选择器:
请您告诉我如何使用像iCal这样的格式化程序?
答案 0 :(得分:0)
使用NSDatePicker实例方法setDatePickerStyle:
- (void)setDatePickerStyle:(NSDatePickerStyle)newStyle
答案 1 :(得分:0)
Apple在NSDatePicker
上使用私有方法来强制显示前导零,而与语言环境无关。您也可以这样做,尽管它可能无法在Mac App Store中清除评论。
是的,您可以强制使用始终显示两位数日期字段的语言环境,但是某些用户会看到错误的字段顺序或其语言环境的分隔符。
对于Calendar.app / iCal,我们可以在Hopper中查看CalendarUI.framework
,看看它们在哪里调用私有方法_setForcesLeadingZeros:
。
您可以使用…
调用私有方法let sel = Selector(("_setForcesLeadingZeroes:"))
let imp = class_getMethodImplementation(NSDatePicker.self, sel)
let impClosure = unsafeBitCast(
imp,
to: (@convention(c)(Any?, Selector?, Bool) -> Void).self)
impClosure(datePicker, sel, true)