iPhone UIDatePicker设置最大日期

3

我正在尝试构建一个日期选择器,其中今天是最小日期,2011年2月1日是最大日期。

我已将最小日期设置为以下内容:

[picker setMinimumDate: [NSDate date]];

这个可以正常工作,但是MaximumDate似乎不正确。

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

如何正确设置最大日期?

3个回答

8
找到了答案。无论如何感谢你的帮助。
[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];

嘿,@Matthew,请将其设置为正确答案!点击复选标记。 - vfn
它不允许我再做两天,所以我会在那时候做:D - Matthew Pateman

3
 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)。 这样只会显示过去五年的日期......


2

您也可以在Interface Builder的面板中完成此操作。我认为按下“Command-1”键会切换到面板的一个选项卡,允许您设置选择器的最大日期。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接