2010-08-29 20 views
3

J'essaye de construire un datepicker qui a aujourd'hui comme date minimum et 1 février 2011 comme date maximum.iPhone UIDatePicker setMaximumDate

J'ai mis la date minimum comme suit

[picker setMinimumDate: [NSDate date]]; 

et cela fonctionne très bien, mais le MaximumDate ne semble pas être correct.

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

Comment régler la date maximale correctement?

Répondre

8

J'ai trouvé la réponse. Merci quand même pour votre aide.

[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

Hey @Matthew, définir comme la bonne réponse ainsi! Cliquez sur la coche. – vfn

+0

il ne me laissera pas faire ça pendant 2 jours - donc je le ferai alors: D –

2

Vous pouvez également le faire dans la palette Interface Builder. Je pense que si vous appuyez sur "Command-1", il passera à un onglet dans la palette qui vous permet de définir la date maximale pour le sélecteur.

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

entendre indiquant la date date à MinDate ans et cinq ans (retour) à MaxDate c'est spectacle seulement cinq années .....