3

我正在尝试构建一个日期选择器,它将今天作为最小日期,并将 2011 年 2 月 1 日作为最大日期。

我已将最短日期设置如下

[picker setMinimumDate: [NSDate date]];

这工作得很好,但 MaximumDate 似乎不正确。

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

如何正确设置最大日期?

4

3 回答 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];
于 2010-08-29T23:34:46.737 回答
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 它只显示五年.....

于 2012-08-13T13:11:31.317 回答
2

您也可以在 Interface Builder 的调色板中执行此操作。我认为,如果您按“Command-1”,它将切换到调色板中的一个选项卡,允许您设置选择器的最大日期。

于 2010-08-31T23:56:20.037 回答