Вопрос по iphone, cocoa-touch, uidatepicker, interface-builder – Как отключить AM / PM в UIDatePicker

19

Как отключить или скрыть AM / PM вUIDatePicker из конструктора кода / интерфейса?

Я хочу иметь 24-часовой режим выбора времени вUIDatePicker, Пожалуйста помоги

Как ответили тутstackoverflow.com/questions/1151335/... и здесьstackoverflow.com/questions/2894161/..., экран выбора зависит от настроек страны, а не от языковых настроек. В вашем примере вы меняете только языковой стандарт. Vladimir Grichina
Для iOS 6 вы можете увидеть мой ответstackoverflow.com/a/12975871/1376032 FunkyKat

Ваш Ответ

5   ответов
13

Согласно документации вы должны быть в состоянии установитьlocale свойство UIDatePicker для локали, которая использует 24-часовой формат.

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

Увы, существует ошибка, приводящая к тому, что и симулятор, и устройство продолжают макетировать указатель даты в соответствии с международными предпочтениями пользователей.

Как вы предлагаете, вы должны бросить свой выигрышный сборщик дат, чтобы иметь возможность отображать 24-часовой сборщик.

Проблема в том, что пользователи не знакомы с датским. Таким образом, решение должно быть отклонено. DawnSong
Спасибо, Бро, за его работу ... datePicker.datePickerMode = UIDatePickerModeTime; NSLocale * locale = [[NSLocale alloc] initWithLocaleIdentifier: @ "da_DK»]; [datePicker setLocale: locale]; Sawan Cool
В исходном ответе (теперь обновленном) я ошибся ни в устройстве, ни в симуляторе. Отчет об ошибке был подан в Apple. Сейчас яделай так, как ты предлагаешь - катайся сам. Niels Castle
Это не ошибка, вы только меняете язык, а на самом деле это зависит от настроек страны. Vladimir Grichina
-3

Это удаляет AM / PM из сборщика ...

UIDatePicker *myDatePicker = [[UIDatePicker alloc]init];
[myDatePicker setDatePickerMode:UIDatePickerModeDate];
Это также убирает время! Я нене думаю, что это то, чтотребуется. jrturton
6

AFAIK вы можетет (в пределах SDK). AP / PM исчезнет, если пользователь выберет 24-часовой формат. Сделать свой собственныйUIPickerView в случае, если это важно.

1

AM / PM связан с iphone 'Настройки локали. Вы можете принудительно заставить язык выбора что-то, что неУ вас не должно быть AM / PM, как у ro_RO, или, если вы все время хотите использовать AM / PM, вы можете использовать en_US. Для настройки этого вы можете сделать это в дизайнере справа под локалью как английский (США) или по коду

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

0

Я знаю, что это старое ... но я недавно изучил это и обнаружил это через некоторое тестирование:

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

Это в основном говорит мне, что "язык» это английский ("ан» часть) и "стиль времени " является французским (по умолчанию 24 часа) ("FR» часть). Я объединил их методом проб и ошибок и обнаружил, что это работает для того, что я хотел, а именно для того, чтобы иметь "Дата и время" сборщик, который также выбирает за 24 часа (нет раздела AM / PM на сборщике, на английском языке).

Проблема в том, что когда вы берете дату здесь, язык может быть неправильным ->

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

Так что сделайте это, чтобы исправить локаль в части выбора изменения даты:

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

Похожие вопросы