2010-01-26 6 views
17

Wie AM/PM in UIDatePicker von Code/Interface Builder deaktivieren oder ausblenden?So deaktivieren Sie AM/PM in UIDatePicker

Ich möchte 24 Stunden Zeit Picker-Modus in UIDatePicker haben. Bitte helfen

+0

Wie hier beantwortet http://stackoverflow.com/questions/1151335/can-i-localize-a-uidatepicker/2265984#2265984 und hier http://stackoverflow.com/questions/2894161/uidatepicker-problem-localizing/2918507 # 2918507 hängt die Auswahl des Auswahlfensters von den Ländereinstellungen ab, nicht von den Spracheinstellungen. In Ihrem Beispiel ändern Sie nur das Gebietsschema für die Sprache. –

+0

Für iOS 6 können Sie meine Antwort http://stackoverflow.com/a/12975871/1376032 – FunkyKat

Antwort

6

AFAIK können Sie nicht (innerhalb der Grenzen des SDK). Der AP/PM wird ausgeblendet, wenn der Benutzer das 24-Stunden-Format verwendet. Machen Sie Ihre eigene UIPickerView für den Fall, dass dies wichtig ist.

10

Gemäß der Dokumentation sollten Sie in der Lage sein, die locale-Eigenschaft von UIDatePicker auf ein Gebietsschema zu setzen, das ein 24-Stunden-Format verwendet.

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

Leider gibt es einen Fehler verursacht sowohl Simulator und Gerät weiterhin die Datumsauswahl, Layout nach den Benutzern internationale Vorlieben.

Wie Sie vorschlagen, müssen Sie Ihren Winned Date Picker rollen, um einen 24 Stunden Picker anzeigen zu können.

+1

Ich habe versucht, en_GB und dk_DK Locale funktioniert nicht im Simulator noch in Gerät. Aber ich bemerkte, wenn Sie 24-Stunden-Format in iPhone-Einstellungen dann UIDatepicker zeigt 24 Stunden Zeit. Also sollte ich meinen eigenen UIPickerView machen oder gibt es einen Weg dies zu erreichen? –

+0

Ich lag falsch in meiner ursprünglichen Antwort (jetzt aktualisiert) weder Gerät noch Simulator funktioniert. Ein Fehlerbericht wurde bei Apple eingereicht. Für jetzt würde ich tun, was Sie vorschlagen - rollen Sie Ihre eigenen. –

+0

Es ist kein Fehler, Sie ändern nur eine Sprache, während es in Wirklichkeit von den Ländereinstellungen abhängt. –

-3

Das den AM/PM vom Picker entfernt ...

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

Es entfernt auch die Zeit! Ich denke nicht, dass das erforderlich ist. – jrturton

1

die AM/PM mit der iPhone-Locale-Einstellungen verknüpft. Sie können entweder das Gebietsschema des Pickers auf etwas setzen, das nicht AM/PM wie ro_RO hat, oder falls Sie es immer mit AM/PM möchten, können Sie mit en_US gehen. Für Einstellungen können diese Sie es in Designer auf der rechten Seite unter locale wie Englisch (USA) tun oder durch Code

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

0

Ich weiß, das ist alt ... aber ich war auf der Suche in dieser kürzlich gefunden dies durch einige Tests:

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

das sagt mir, im Grunde genommen, dass die „Sprache“ ist Englisch (der „en“ Teil) und „Zeit-Stil“ Französisch (der „FR“ (die Standard-24-Stunden-Zeit ist) Teil). Ich kombinierte die beiden durch Versuch und Irrtum und stellte fest, dass es für das arbeitete, was ich wollte, das nur einen "Datum und Zeit" -Wähler hatte, der auch in 24 Stunden (kein AM/PM-Abschnitt auf dem Picker, in Englisch) auswählt Text).

Das Problem dabei ist, wenn Sie das Datum hier greifen, kann das Gebietsschema falsch sein ->

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

dies also tun, um die locale in dem Datumswechsel Auswahlteil zu beheben:

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