2012-01-20 3 views
5

ユーザーがtextFieldをクリックすると、ポップアップを持つDatePickerが使用されています。しかし、ピッカーは最初に日付を表​​示するのではなく、月を最初に表示し、日付を書き込むのは英国の方法ではありません。 dd/mm/yyyyのように、DatePickerの日付形式を英国式に設定する方法はありますか?iPhone:DatePicker dd/mm/yyyy

-(IBAction)acsheet:(id)sender 
{ 

    actionSheet = [[UIActionSheet alloc] initWithTitle:nil 
               delegate:nil 
            cancelButtonTitle:nil 
           destructiveButtonTitle:nil 
            otherButtonTitles:nil]; 
    [actionSheet setActionSheetStyle:UIActionSheetStyleBlackTranslucent]; 

    //CGRect pickerFrame = CGRectMake(0, 45, 0, 0); 
    pickerView1 = [[UIDatePicker alloc] init]; 
    pickerView1.datePickerMode = UIDatePickerModeDate; 

    [actionSheet addSubview:pickerView1]; 

    UISegmentedControl *closeButton = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObject:@"Close"]]; 
    closeButton.momentary = YES; 
    closeButton.frame = CGRectMake(260, 7.0f, 50.0f, 30.0f); 
    closeButton.segmentedControlStyle = UISegmentedControlStyleBar; 
    closeButton.tintColor = [UIColor blackColor]; 
    [closeButton addTarget:self action:@selector(dismissActionSheet:)      
         forControlEvents:UIControlEventValueChanged]; 
    [actionSheet addSubview:closeButton]; 
    [actionSheet showInView:[[UIApplication sharedApplication] keyWindow]];  
    [actionSheet setBounds:CGRectMake(0, 0, 320, 485)]; 

    [pickerView1 addTarget:self 
        action:@selector(updateLabel:) 
      forControlEvents:UIControlEventValueChanged]; 

    UIBarButtonItem *spacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; 
    UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(dismissDatePicker:)] ; 
    UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, self.view.bounds.size.height, 320, 44)]; 
    toolBar.tag = 11; 
    toolBar.barStyle = UIBarStyleBlackTranslucent; 

    [toolBar setItems:[NSArray arrayWithObjects:spacer, doneButton, nil]]; 
    [self.view addSubview:toolBar]; 

} 

答えて

17

UIDatePickerは、デフォルトでは[NSLocale currentLocale]が使用するものを使用します。

UIDatePickerlocaleプロパティは、iOS 5で廃止されましたが、私はあなたが次の操作を行うことができると信じている:

NSCalendar *cal = [NSCalendar currentCalendar]; 
cal.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_GB"]; 
myDatePicker.calendar = cal; 

このべき仕事を。それがなければ、file a bugと私はそれを修正します。 :)

+0

ありがとう、私はこれを試みる! – user973067

+2

Daveさん、ありがとうございますが、何らかの理由でこれが動作しません。このジレンマを持っている人は誰ですか?私はここでBBogの答えを見て、それはかなり落胆して見える:http://stackoverflow.com/questions/9638698/ios-change-language-for-uidatepicker-by-locale – Stavash

+0

これは動作していないようです – sapatos

2

テキストの月を書い英国は、おそらく最初の月を置く(あるいは少なくともそれが許容可能である): 私はAchtionsheetを使用しています。

あなたの質問に答えるために、私は日付ピッカーの表示形式を変更する方法を知らないのですが、独自のデリゲートとデータソースを持つUIPickerViewを使用して独自のものにすることができます。

+0

いいえ.....最初に...ねえ、私はあなたをマークしていない! ;-) – Damo

+0

最初の日付は20/01/11と似ていますが、2011年1月20日は大丈夫です(免責事項:私は英国ではありませんが、イギリスに住んでいます...) – wattson12

+0

ありがとうございます。はい、それは時間の最初の拍手ですが、最初の月は受け入れられるでしょう(それは、人々がアメリカの方法で2010年5月7日のように書くときに紛らわしいだけです)とにかくあなたの提案に感謝します。 – user973067

7

UIDatePickerは、ユーザーの設定に合わせて作られています。 locale:メソッドを使用してフォーマットを変更することはできましたが、現在はiOS 5.0では廃止予定です。

あなたはあなたのiPhoneの設定であなたのフォーマットを表示することができます:あなたが特定の形式を使用する場合は、あなた自身のピッカーを行うことを検討

設定>一般>国際>地域・フォーマット

をそれ日付ピッカーにとっては非常にお勧めです。

+0

私はデバイスで試してみて、それは英国の方法でdesplayedしています。 – user973067

関連する問題