我的 UI 中有一个文本字段,当它被选中时会显示一个 UIDatePicker 而不是默认键盘,我如何设置一个按钮以在用户完成后关闭选择器?
14678 次
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];
将此添加到您要关闭日期选择器的位置,就像我在点击手势
上添加的一样 在 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];
}
于 2016-08-30T05:17:11.673 回答