2012-01-20 11 views
5

जब कोई उपयोगकर्ता टेक्स्ट फ़ील्ड पर क्लिक करता है तो मैं पॉपअप के साथ डेटपिकर का उपयोग कर रहा हूं। हालांकि, पिकर पहले महीने प्रदर्शित करता है, पहले दिनांक नहीं है और यह तारीख लिखने का ब्रिटिश तरीका नहीं है। क्या डेटपिकर में डेट प्रारूप को ब्रिटिश तरीके से सेट करने का कोई तरीका है जैसे डीडी/एमएम/वाई वाई? मैं एक Achtionsheet उपयोग कर रहा हूँ:आईफोन: डेटपिकर डीडी/एमएम/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] निर्देशों का उपयोग करता है।

UIDatePicker पर locale संपत्ति iOS 5 में पदावनत किया गया था, लेकिन मेरा मानना ​​है कि आप निम्न कर सकता है:

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

यह चाहिए काम करते हैं। यदि ऐसा नहीं होता है, तो कृपया file a bug और मैं इसे ठीक कर दूंगा। :)

+0

धन्यवाद, मैं कोशिश करूँगा !!! – user973067

+2

धन्यवाद डेव, लेकिन यह किसी कारण से काम नहीं करता है। इस दुविधा के साथ कोई और? मैंने बीबीओजी का जवाब यहां देखा और यह बहुत निराशाजनक दिखता है: http://stackoverflow.com/questions/9638698/ios-change-language-for-uidatepicker-by-locale – Stavash

+0

यह काम नहीं करता है – sapatos

2

जब पाठ में महीने के लेखन ब्रिटिश शायद पहले महीने डाल (या कम से कम यह स्वीकार्य होगा)।

लेकिन आपके प्रश्न का उत्तर देने के लिए मुझे दिनांक पिकर के डिस्प्ले प्रारूप को बदलने के तरीके से अवगत नहीं है, लेकिन आप एक कस्टम प्रतिनिधि और डेटा स्रोत के साथ यूआईपीकर व्यू का उपयोग कर स्वयं बना सकते हैं।

+0

नहीं ..... दिन पहले ... अरे मैंने तुम्हें चिह्नित नहीं किया! ;-) – Damo

+0

दिन पहली बार जब 20/01/11 की तरह है लेकिन 20 जनवरी 2011 को लिखना शायद ठीक है (अस्वीकरण: मैं ब्रिटिश नहीं हूं, लेकिन मैं ब्रिटेन में रहता हूं ...) – wattson12

+0

धन्यवाद। हां यह दिन का पहला मौका है, लेकिन पहले महीने स्वीकार्य होगा (जब लोग 05/07/2012 जैसे अमेरिकी तरीके से लिखते हैं तो यह केवल भ्रमित होता है) वैसे भी आपके सुझाव के लिए धन्यवाद। – user973067

7

UIDatePicker उपयोगकर्ता की सेटिंग्स को अनुकूलित करने के लिए बनाया गया है। locale: विधि का उपयोग कर अपने प्रारूप को बदलना संभव था लेकिन अब आईओएस 5.0 में बहिष्कृत किया गया है।

आप अपने iPhone की सेटिंग्स में अपने प्रारूप देख सकते हैं:

सेटिंग> सामान्य> अंतरराष्ट्रीय> क्षेत्र स्वरूप

आप एक विशिष्ट प्रारूप चाहते हैं, अपनी खुद की पिकर बनाने पर विचार, लेकिन यह डेट पिकर के लिए बहुत निराश है।

+0

धन्यवाद मैंने एक डिवाइस पर कोशिश की है और यह ब्रिटिश तरीके से निराश है। – user973067

संबंधित मुद्दे