我有一个文本字段,并且我已经设置了当用户单击该文本字段时日期选择器将显示的日期。但问题是日期选择器并没有隐藏。下面是我的代码。
- (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];
}
最佳答案
不要隐藏它,而是将其删除。
[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;
}
关于ios - 日期选择器不隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17956214/