我有一个文本字段供用户输入字符串,然后是另一个文本字段,单击时会显示一个视图,该视图会在其中滑动日期选择器。
如果用户点击第一个文本字段并使用键盘输入字符串,然后点击键盘上的返回按钮,键盘就会消失。但是,如果他们在第一个文本字段中输入字符串后单击日期文本字段,则键盘将保留在屏幕上。
我试过这个:
@property (weak, nonatomic) IBOutlet UITextField *nameField;
@property (weak, nonatomic) IBOutlet UITextField *dateField;
....
- (BOOL) textFieldShouldBeginEditing:(UITextField *)textField {
return(![textField isEqual:self.dateField]);
}
它不起作用。 我也尝试了这个(当用户点击dateField时,这是在开始编辑时触发的):
- (IBAction)dateTextFieldClicked:(id)sender {
[self.nameField resignFirstResponder];
}
然后这个:
- (IBAction)dateTextFieldClicked:(id)sender {
[self.view endEditing:YES];
}
这些都不起作用。是我试图做的甚至可能吗?我应该放弃还是有某种方式可行?
答案 0 :(得分:0)
试试这个..
- (IBAction)dateTextFieldClicked:(id)sender {
[self.nameField resignFirstResponder];
[self.view endEditing:YES]; }
答案 1 :(得分:0)
有一种简单的方法,我有同样的问题。将dateField作为UIButton,而不是UITextField。在Button操作中,将其设置如下:
- (IBAction)Date_set:(id)sender
{
[self.view endEditing:YES];
[self YourDatePickerset];
}
当DatePicker值改变时,设置按钮的标题
- (void)pickerChanged:(id)sender
{
NSDateFormatter *dateformate=[[NSDateFormatter alloc]init];
[dateformate setDateFormat:@"dd LLL yyyy"]; // Date formater
NSString *date = [dateformate stringFromDate:[myPicker date]]; // Convert date to string
NSLog(@"date :%@",date);
[dob_btn setTitle:date forState:UIControlStateNormal];
}
答案 2 :(得分:0)
您可以使用此代码段让我告诉结果
-(BOOL)textFieldShouldReturn:(UITextField *)textField{
[textField resignFirstResponder];
return YES;
}
确保所有文本字段的委托都设置为self
也试试这个
的修改
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
[dateField resignFirstResponder];
[nameField resignFirstResponder];
}