2010-08-29 26 views
3

我正在嘗試構建一個datepicker,它具有今天作爲最小日期和2011年2月1日作爲最大日期。iPhone UIDatePicker setMaximumDate

我已經將最小日期其次

[picker setMinimumDate: [NSDate date]]; 

,這工作得很好,但MaximumDate似乎並不正確。

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

如何正確設置最大日期?

回答

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]; 
+0

嘿@Matthew,將其設置爲正確答案麼!點擊複選標記。 – vfn 2010-08-30 00:02:23

+0

它不會讓我再做2天 - 所以我會這樣做:D – 2010-08-30 09:06:07

2

您也可以在Interface Builder的調色板中執行此操作。我想如果按下「Command-1」,它會切換到調色板中的一個選項卡,該選項卡允許您設置選取器的最大日期。

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 這是隻顯示5年.....

相關問題