iOS – closures显示为inputView的UIDatePicker

我有一个在我的用户界面的文本字段,当它被选中提供了一个UIDatePicker而不是默认的键盘,我怎么能设置一个button,closuresselect器,当用户完成?

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

创build一个UIView(即customDatePickerView),并在该视图中,在xib中创builddatepicker和一个完成button和一个取消button。 在textfield委托中:

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

date选取器值的function已更改

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

希望这会帮助你。

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

这样,button移动到UIDatePicker视图,并且看起来“连接”到用户。 你甚至可以在你的nib中定义这个UIView ,并在运行时使用addSubview:

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

 [self.view endEditing:YES]; 

添加这个你想放弃dateselect器,就像我已经添加了这个轻拍手势
在viewDidLoad添加一个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]; }