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