我有文本框和我已经设置了当用户点击该文本框的日期选择器将显示。但问题是,日期选择器后不躲了起来。下面的是我的代码。
- (IBAction) ac{
NSDateFormatter *df = [[NSDateFormatter alloc] init];
df.dateStyle = NSDateFormatterMediumStyle;
date.text = [NSString stringWithFormat:@"%@",
[df stringFromDate:[NSDate date]]];
datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 250, 0, 0)];
datePicker.datePickerMode = UIDatePickerModeDate;
//datePicker.hidden = NO;
datePicker.date = [NSDate date];
date.inputView = datePicker;
[datePicker addTarget:self
action:@selector(LabelChange:)
forControlEvents:UIControlEventValueChanged];
[self.view addSubview:datePicker];
}
- (void)LabelChange:(id)sender{
NSDateFormatter *df = [[NSDateFormatter alloc] init];
df.dateStyle = NSDateFormatterMediumStyle;
date.text = [NSString stringWithFormat:@"%@",
[df stringFromDate:datePicker.date]];
}
-(IBAction)hidekey{
[title resignFirstResponder];
[date resignFirstResponder];
[disc resignFirstResponder];
[place resignFirstResponder];
//datePicker.hidden = YES;
[datePicker setHidden:YES];
}
答案 0 :(得分:1)
而不是隐藏删除它。
[datePicker removeFromSuperview];
另一个选项
更改您的方法,如:
- (IBAction) ac
{
NSDateFormatter *df = [[NSDateFormatter alloc] init];
df.dateStyle = NSDateFormatterMediumStyle;
date.text = [NSString stringWithFormat:@"%@",
[df stringFromDate:[NSDate date]]];
datePicker = nil;
datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 250, 0, 0)];
datePicker.datePickerMode = UIDatePickerModeDate;
//datePicker.hidden = NO;
datePicker.date = [NSDate date];
date.inputView = datePicker;
[datePicker addTarget:self
action:@selector(LabelChange:)
forControlEvents:UIControlEventValueChanged];
[date setInputView:datePicker];
}
-(IBAction)hidekey
{
[title resignFirstResponder];
[date resignFirstResponder];
[disc resignFirstResponder];
[place resignFirstResponder];
datePicker = nil;
}