你好,我是一名新手,正在学习iPhone/iPad编程。这个程序我将为iPad开发,所以我需要帮助。我的问题是,点击一个按钮后,能否出现日期选择器,并且当选择日期后,我想将其存储在文本字段中。或者,是否最好插入一个日历而不是日期选择器?如果是这样,我该如何添加一个普通的日历并编写代码?
在nib文件中应该做哪些更改?日期会显示在文本字段中吗?难道不应该有一个UITextField吗?
您需要为按钮创建一个IBAction来调用以显示UIDatePicker。然后实现UIDatePicker委托方法并设置标签的文本。
在您的头文件中:
-(IBAction)showDatePicker:(id)sender;
在你的实现文件中。 -(IBAction)showDatePicker:(id)sender
{
UIDatePicker* picker = [[UIDatePicker alloc] init];
picker.autoresizingMask = UIViewAutoresizingFlexibleWidth;
picker.datePickerMode = UIDatePickerModeDate;
[picker addTarget:self action:@selector(dueDateChanged:) forControlEvents:UIControlEventValueChanged];
CGSize pickerSize = [picker sizeThatFits:CGSizeZero];
picker.frame = CGRectMake(0.0, 250, pickerSize.width, 460);
picker.backgroundColor = [UIColor blackColor];
[self.view addSubview:picker];
[picker release];
}
-(void) dueDateChanged:(UIDatePicker *)sender {
NSDateFormatter* dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateStyle:NSDateFormatterLongStyle];
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
//self.myLabel.text = [dateFormatter stringFromDate:[dueDatePickerView date]];
NSLog(@"Picked the date %@", [dateFormatter stringFromDate:[sender date]]);
}
稍后需要时,只需调用 removeFromSuperView 方法将其移除即可。
In .h file just Create
UIDatePicker *datePicker;
After that .m file
// For Date
datePicker = [[UIDatePicker alloc]init];
datePicker.datePickerMode = UIDatePickerModeDate;
[_closingDateTxtFld setInputView:datePicker];
UIToolbar *toolBar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 44)];
[toolBar setTintColor:[UIColor grayColor]];
UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStylePlain target:self action:@selector(ShowSelectedDate)];
UIBarButtonItem *space = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
[toolBar setItems:[NSArray arrayWithObjects:space,doneBtn, nil]];
[_closingDateTxtFld setInputAccessoryView:toolBar];
只需调用此方法
-(void)ShowSelectedDate
{
NSDateFormatter *formatter=[[NSDateFormatter alloc]init];
[formatter setDateFormat:@"YYYY-M-dd"];
if ([_closingDateTxtFld isFirstResponder])
{
_closingDateTxtFld.text=[NSString stringWithFormat:@"%@", [formatter stringFromDate:datePicker.date]];
[_closingDateTxtFld resignFirstResponder];
}
}