iPhone: DatePicker дд / мм / гггг - PullRequest
5 голосов
/ 20 января 2012

Я использую DatePicker с всплывающими окнами, когда пользователь щелкает текстовое поле. Тем не менее, сборщик отображает месяц первым, а не дату первым, и это не британский способ записи даты. Есть ли способ установить формат даты в DatePicker на британский, например, дд / мм / гггг? Я использую Achtionsheet:

-(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];

}

Ответы [ 3 ]

17 голосов
/ 20 января 2012

UIDatePicker по умолчанию использует все, что диктует [NSLocale currentLocale].

Свойство locale на UIDatePicker устарело в iOS 5, но я считаю, что вы могли бы сделать следующее:

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

Это должно работать.Если этого не произойдет, сообщите об ошибке , и я исправлю ее.:)

7 голосов
/ 20 января 2012

UIDatePicker сделан для адаптации к настройкам пользователя. Изменение формата с помощью метода locale: было возможно, но в iOS 5.0 теперь не рекомендуется.

Вы можете просмотреть свой формат в настройках вашего iPhone:

Настройки> Общие> Международные> Формат региона

Если вы хотите определенный формат, подумайте о том, чтобы сделать свой собственный сборщик, но он очень не рекомендуется для выбора даты.

2 голосов
/ 20 января 2012

При написании месяца в тексте британцы, вероятно, ставят месяц первым (или, по крайней мере, это будет приемлемо).

Но чтобы ответить на ваш вопрос, я не знаю, как изменить формат отображения средства выбора даты, но вы можете сделать свое собственное, используя UIPickerView с пользовательским делегатом и источником данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...