iPhone UIDatePicker setMaximumDate


Я пытаюсь построить datepicker, который имеет сегодня в качестве минимальной даты и 1 февраля 2011 года в качестве максимальной даты.

Я установил минимальную дату следующим образом

[picker setMinimumDate: [NSDate date]];

И это работает просто отлично, но MaximumDate не кажется правильным.

[picker setMaximumDate: [NSDate dateWithNaturalLanguageString:@"11/02/01"]];

Как правильно установить максимальную дату?

3 3

3 ответа:

Нашел ответ. В любом случае, спасибо за вашу помощь.

[picker setDatePickerMode:UIDatePickerModeDate];

NSDateFormatter* formatter1 = [[NSDateFormatter alloc] init];
[formatter1 setLenient:YES];
[formatter1 setDateStyle:NSDateFormatterShortStyle];
[formatter1 setTimeStyle:NSDateFormatterShortStyle];

NSString* dateString = @"February 1 2011 10:00am";
NSDate* maxDate = [formatter1 dateFromString:dateString];

[picker setMinimumDate: [NSDate date]];
[picker setMaximumDate: maxDate];
 NSCalendar *calendar = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
        NSDate *currentDate = [NSDate date];
        NSDateComponents *comps = [[[NSDateComponents alloc] init] autorelease];
        [comps setYear:0];
        NSDate *maxDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0];
        [comps setYear:-5];
        NSDate *minDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0];

        [datePicker setMaximumDate:maxDate];
        [datePicker setMinimumDate:minDate];

Услышать отображение даты текущая дата для minDate и пять лет (назад) для maxDate это шоу только пять лет.....

Вы также можете сделать это в палитре Interface Builder. Я думаю, что если вы нажмете "Command-1", он переключится на вкладку в палитре, которая позволяет установить максимальную дату для выбора.