あなたの質問を正しく理解できれば、お役に立てるかもしれません。これは、テキストフィールドをフォーマットして日付を選択するために以前に使用した古いコードです。うまくいけば、あなたはそれを理解し、あなたのニーズに適応させることができます:
ノート:UITextField *endDate;
//Get date and format it for the textfields
-(void)updateTextField:(id)sender
{
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];
UIDatePicker *picker = (UIDatePicker*)self.endDate.inputView;
NSString *theDate = [dateFormat stringFromDate:picker.date];
self.endDate.text = [NSString stringWithFormat:@"%@",theDate];
[dateFormat release];
}
キーボードの代わりに日付セレクターを使用するには、viewDidLoad() メソッドで次のようなことを試してください*
//Make date pickers instead of keyboards for time text boxes
UIDatePicker *datePicker = [[[UIDatePicker alloc]initWithFrame:CGRectMake(0.0, 0.0, 320.0, 162.0)] autorelease];
datePicker.datePickerMode = UIDatePickerModeDate;
datePicker.maximumDate = [NSDate date];
NSDate *setDate = [NSDate dateWithYear: 2012 month: 02 day: 03];
[datePicker setDate:setDate];
[datePicker addTarget:self action:@selector(updateTextField:) forControlEvents:UIControlEventValueChanged];
[self.startDate setInputView:datePicker];
datePicker = [[[UIDatePicker alloc]initWithFrame:CGRectMake(0.0, 0.0, 320.0, 162.0)] autorelease];
datePicker.datePickerMode = UIDatePickerModeDate;
datePicker.maximumDate = [NSDate date];
setDate = [NSDate dateWithYear: 2012 month: 02 day: 10];
[datePicker setDate:setDate];
[datePicker addTarget:self action:@selector(updateTextField2:) forControlEvents:UIControlEventValueChanged];
[self.endDate setInputView:datePicker];
*注: 独自の NSDate インターフェイス/実装が必要な場合があります。その場合、コードは以下のとおりです。ファイルの先頭にインポートすることを忘れないでください!
NSDate.h
#import <Foundation/Foundation.h>
@interface NSDate (missingFunctions)
+ (NSDate *)dateWithYear:(NSInteger)year month:(NSInteger)month day:(NSInteger)day;
@end
NSDate.m
#import "NSDate.h"
@implementation NSDate (missingFunctions)
+ (NSDate *)dateWithYear:(NSInteger)year month:(NSInteger)month day:(NSInteger)day {
NSCalendar *calendar = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
NSDateComponents *components = [[[NSDateComponents alloc] init] autorelease];
[components setYear:year];
[components setMonth:month];
[components setDay:day];
return [calendar dateFromComponents:components];
}
@end