0

我有文本字段,并且我设置了当用户单击该文本字段时,日期选择器将显示。但问题是日期选择器没有隐藏之后。以下是我的代码。

- (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];
}
4

1 回答 1

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;
}
于 2013-07-30T20:03:52.470 回答