UIDatePicker
コード/インターフェイス ビルダーからAM/PM を無効化または非表示にする方法は?
で 24 時間のタイム ピッカー モードが必要UIDatePicker
です。助けてください
UIDatePicker
コード/インターフェイス ビルダーからAM/PM を無効化または非表示にする方法は?
で 24 時間のタイム ピッカー モードが必要UIDatePicker
です。助けてください
locale
ドキュメントによると、 UIDatePicker のプロパティを 24 時間形式を使用するロケールに設定できるはずです。
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"da_DK"];
[datePicker setLocale:locale];
[locale release];
残念ながら、シミュレーターとデバイスの両方が、ユーザーの国際設定に従って日付ピッカーをレイアウトし続けるバグがあります。
ご提案のとおり、24 時間ピッカーを表示できるようにするには、獲得した日付ピッカーをロールする必要があります。
AFAIKはできません(SDKの制限内)。ユーザーが24時間形式を使用することを選択した場合、AP/PMは表示されなくなります。UIPickerView
これが重要な場合に備えて、自分で作成してください。
私はこれが古いことを知っています...しかし、私は最近これを調べていて、いくつかのテストでこれを見つけました:
[datePicker setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_FR"]];
これは基本的に、「言語」が英語 (「en」の部分) で、「時刻スタイル」がフランス語 (デフォルトの 24 時間制) (「FR」の部分) であることを示しています。試行錯誤を重ねてこの 2 つを組み合わせたところ、24 時間制でピッカーを選択する「日付と時刻」ピッカーを使用するだけで、希望どおりに機能していることがわかりました (ピッカーに AM/PM セクションはありません。英語で)文章)。
これの問題は、ここで日付を取得すると、ロケールが間違っている可能性があることです->
- (void)changeDate:(UIDatePicker *)sender {
したがって、日付変更の選択部分でロケールを修正するには、次のようにします。
[sender setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_FR"]];
これにより、ピッカーから AM/PM が削除されます...
UIDatePicker *myDatePicker = [[UIDatePicker alloc]init];
[myDatePicker setDatePickerMode:UIDatePickerModeDate];