7

我的 UI 中有一个文本字段,当它被选中时会显示一个 UIDatePicker 而不是默认键盘,我如何设置一个按钮以在用户完成后关闭选择器?

4

4 回答 4

8

我所做的是将我的 inputView 作为自定义视图,其中包含一个UIDatePicker和它上方的工具栏,并带有一个“完成”按钮,该按钮连接到一个调用委托方法的方法,以告诉拥有该对象的对象UITextField通过调用来关闭“键盘” resignFirstResponder.

于 2012-03-05T22:29:15.430 回答
1

创建一个 UIView(即 customDatePickerView)并在该视图中,在 xib 中创建 datepicker 和一个完成按钮和一个取消按钮。在文本字段委托中:

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
    if (textField == textfieldName) {
        [textfieldName resignFirstResponder];
         //show the view
         self.customDatePickerView.hidden = NO;

    }

}//dismisses keyboard

更改日期选择器值的功能

- (IBAction)onDatePickerClick:(id)sender {

    NSDateFormatter  *dateFormatter = [[NSDateFormatter alloc]init];
    [dateFormatter setDateFormat:@"MM/dd/YYYY"];
    NSDate *selectedDate = [self.wellRecordDatePicker date];
    NSString *recordDate = [dateFormatter stringFromDate:selectedDate];
    self.yourTextfieldName.text = recordDate;


}

- (IBAction)onDoneBtnClick:(id)sender
{
       self.customDatePickerView.hidden = YES;
}
- (IBAction)onCancelBtnClick:(id)sender
{
       self.customDatePickerView.hidden = YES;
}

希望这会帮助你。

于 2012-09-28T11:03:15.893 回答
0

我做过类似的事情,我用一个按钮和 创建了一个视图UIDatePicker,然后呈现该视图而不是UIDatePicker单独呈现该视图。然后按钮只是连接到一个IBAction将视图移出的按钮。

这样,按钮会随着UIDatePicker视图移动,并且它们看起来与用户“连接”。您甚至可以UIView在您的 nib 中定义它并addSubview:在运行时使用。

于 2012-03-05T22:29:23.033 回答
0

你可以通过添加这个来解决这个问题

[self.view endEditing:YES];

将此添加到您要关闭日期选择器的位置,就像我在点击手势
上添加的一样 在 vi​​ewDidLoad 添加了一个 Tapgesture

 UITapGestureRecognizer *gesRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)]; // Declare the Gesture.
    gesRecognizer.delegate = self;
    [self.view addGestureRecognizer:gesRecognizer];

在 viewdidLoad 添加此方法后添加此方法以检测手势识别器

- (void)handleTap:(UITapGestureRecognizer *)gestureRecognizer{
    NSLog(@"Tapped");
    [self.view endEditing:YES];
}
于 2016-08-30T05:17:11.673 回答