【发布时间】:2012-03-18 04:01:18
【问题描述】:
我想在UITextField 结束编辑事件上隐藏键盘,但不知何故我无法让以下代码正常工作!当我按下完成按钮时,它会隐藏键盘,但当我不按下完成按钮并移动到另一个 UITextField 时,我不需要键盘但 UIPickerView。基本上UIPickerView 出现在键盘后面。我将在结束编辑事件以及开始编辑所需文本字段时辞去当前的UITextField。如果我没有为以前的UITextField 显示键盘,则开始编辑代码可以正常工作。有人可以告诉我我做错了什么吗?
以下顺序有效:
- 选择普通
UITextField并插入文本,按完成按钮(这会隐藏键盘) - 选择选择器
UITextField(这会显示选择器视图)
..但以下没有:
- 选择普通
UITextField并插入文字 -
选择选择器
UITextField(选择器视图在键盘后面,因为我没有按之前的UITextField的完成按钮)。这里调用结束编辑,但不隐藏键盘!- (BOOL)textFieldShouldReturn:(UITextField *)textField { [textField resignFirstResponder]; scrollView.contentSize = CGSizeMake(320, 750); [scrollView setFrame:CGRectMake(0, 0, 320, 480)]; return YES; } -(void)textFieldDidEndEditing:(UITextField *)textField { [textField resignFirstResponder]; } - (void)textFieldDidBeginEditing:(UITextField *)textField { DatePicker.hidden = YES; CountryPickerView.hidden = YES; switch (textField.tag) { case 3: [textField resignFirstResponder]; DatePicker.hidden = NO; return; case 6: [textField resignFirstResponder]; CountryPickerView.hidden = NO; return; default: break; } scrollView.contentSize = CGSizeMake(320, 650); [scrollView setFrame:CGRectMake(0, 0, 320, 260)]; }
【问题讨论】:
-
嗨 Celeb,我在 stackoverflow 上解决了所有关于隐藏 uitextfield 键盘的类似问题,但没有一个与隐藏键盘和显示其他内容有关(在我的情况下是 uipicker)。每个人都说它只是调用 resignFirstResponder 但在我的情况下,让它工作的逻辑有点不同。我已经发布了一个解决方案。感谢 Valexa!
-
不需要添加问题的解决方案。实际上,如果您想回答自己的问题,正确的做法是将其写在答案中。
标签: iphone keyboard uitextfield hide uitextfielddelegate