如何在UIDatePicker中禁用AM / PM

时间:2010-01-26 15:27:42

标签: iphone cocoa-touch interface-builder uidatepicker

如何在代码/界面构建器中禁用或隐藏UIDatePicker中的AM / PM?

我想在UIDatePicker中设置24小时时间选择器模式。 请帮忙

5 个答案:

答案 0 :(得分:13)

根据文档,您应该能够将UIDatePicker的locale属性设置为使用24小时格式的语言环境。

NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"da_DK"];
[datePicker setLocale:locale];
[locale release];

有一个错误导致模拟器和设备根据用户的国际偏好继续布局日期选择器。

根据您的建议,您必须滚动您的日期选择器才能显示24小时选择器。

答案 1 :(得分:6)

AFAIK你不能(在SDK的范围内)。如果用户选择使用24小时格式,AP / PM将消失。如果这很重要,请自行制作UIPickerView

答案 2 :(得分:1)

AM / PM与iphone的区域设置相关联。您可以强制将选择器的区域设置强制为不具有AM / PM的东西,例如ro_RO,或者如果您希望它始终与AM / PM一起使用,则可以使用en_US。对于设置,您可以在设计器右侧的英语(美国)或代码

的区域内进行设置

[timePicker setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US"]];

答案 3 :(得分:0)

我知道这已经过时了......但是我最近对此进行了研究并通过一些测试发现了这一点:

[datePicker setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_FR"]];

这基本上告诉我“语言”是英语(“en”部分),“时间风格”是法语(默认24小时)(“FR”部分)。我通过反复试验将两者结合起来,发现它适用于我想要的东西,这只是为了有一个“日期和时间”选择器,也可以在24小时内选择(选择器没有上午/下午部分,英文)文本)。

问题是,当你在这里抓住日期时,语言环境可能是错误的 - >

- (void)changeDate:(UIDatePicker *)sender {

这样做是为了修复日期更改选择部分中的区域设置:

[sender setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_FR"]];

答案 4 :(得分:-3)

这会从选择器中移除AM / PM ...

UIDatePicker *myDatePicker = [[UIDatePicker alloc]init];
[myDatePicker setDatePickerMode:UIDatePickerModeDate];