app*_*eak 3 iphone keyboard hide uitextfield uitextfielddelegate
我想在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)];
}
Run Code Online (Sandbox Code Playgroud)val*_*exa 10
您不应该依赖标签,而是指向对象并[textField resignFirstResponder];从textFieldDidEndEditing中删除.
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
if (textField == theTextFieldIDontWantKeyboardFor) {
[thepreviousTextField resignFirstResponder];
return NO;
}
return YES;
}
Run Code Online (Sandbox Code Playgroud)
它隐藏键盘但不是当我没有按完成按钮并移动到另一个uitextfield我不需要键盘而是PickerView.
处理此问题的正确方法是为inputView使用选择器而不是键盘的字段设置属性.根据需要配置选择器(设置委托,数据源等),然后将其设置为字段inputView.当您从一个字段移动到下一个字段时,系统将处理隐藏键盘并显示选择器视图,反之亦然.
| 归档时间: |
|
| 查看次数: |
31747 次 |
| 最近记录: |