2013-04-09 71 views
1

在我的iPad应用程序中有3个文本框,我在第二个文本框中使用popoverview控制器。 这里他们2例使用PopOver时无法退出键盘

在第一种情况:

正如我编辑完第一个文本框,然后点击键盘上的一个按钮当时的键盘是完全辞职和popoverview控制器打开了第二个文本框。在这里我写了代码,当第一个文本框的下一个按钮点击时,第二个文本框应该成为FirstResponder。

在第二种情况:

这里的实际问题, 当我完成编辑第一个文本框,并直接接触的第二个文本框不点击键盘上的一个按钮,那个时候popoverview控制器打开菜单上的第二个文本框和键盘无法辞职,键盘被他们的代码敲打,因为辞职键盘不工作。

+0

看看我的回答这个问题,让我知道,如果它的工作原理:http://stackoverflow.com/questions/3019709/modal-dialog-does-not-dismiss-keyboard/10507689#10507689 – 2013-04-09 07:13:52

+0

要澄清,更大的线程(接受的答案)也许是你正在寻找的。如果你有导航控制器,但是,使用链接的答案 – 2013-04-09 07:15:17

+0

嘿,我有同样的问题..你有没有找到任何解决方案? – raw3d 2013-04-25 11:57:15

回答

0

编写代码,你在这波纹管方法键盘的NEXT按钮事件使用...

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField { 
    if (textField == yourFirstTextBox) { 
     // write your code here 
    } 
    return YES; 
} 
0
-(void)textFieldDidBeginEditing:(UITextField *)textfield 
{ 

    if ([textfield tag]==yourtextfieldtag)//set tag for your textfield 
    { 
     [yourfirsttextfield resignFirstResponder]; 
     [yoursecondtextfield resignFirstResponder]; 
     . 
     . 
     . 

    //Write all textField with resignFirstResponder 
    } 

} 
0

这里是你可以处理你的SoftKeypad的方式

Handling Soft Keypad in iPhone Tutorial

有三种简单的方法可以在这里处理键盘

  1. 按钮点击后返回。
  2. 当用户单击键盘上的返回或完成按钮时,键盘返回。
  3. 当用户触摸背景屏幕/视图时,键盘返回。

只要按照第三种方式在你的情况。 你需要做的只是创建一个方法,在该方法中可以调用所需文本字段的方法

方法。

和更新相关UIView类到Interface Builder中的UIControl。因为我已经一步一步地写下了所有的信息,使其更加简单明了。

这里是负责代码剪断

- (IBAction)keypadGoBack:(id)sender {  
    [userNameTextField resignFirstResponder]; 
    [passwordTextField resignFirstResponder]; 
} 

希望这会帮助你。

+0

我已经完成了第三步,这种情况下工作,但编辑第一个文本框后,当我直接点击第二个文本框而不是触摸背景或键盘上的下一个或完成按钮它不工作..键盘在这种情况下 – user2260521 2013-04-09 11:10:54

+0

您是否为** keypadGoBack **方法中的第二个文本添加了** resignFirstResponder **? – swiftBoy 2013-04-09 12:27:34

+0

是的,我已经添加resignFirstResponder为第二个文本框,但没有运气.... – user2260521 2013-04-10 04:39:05

0
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
{ 
    if(textField==yourTextField) 
    { 
     [self.view endEditing:YES]; 
     // Write Your Popoverview Code/Extra Code 
     return NO; 
    } 
    return YES; 
} 
  1. 下面这个方法将被调用时,你会打文本框。
  2. 然后用yourtextFieldName检查文本字段,如果它的匹配,它将会退出所有的键盘。如果有多个...也有帮助。

    [self。查看endEditing:YES];

  3. 而且你可以做额外的代码也为popoverview和返回no的手段它不会给键盘的那个perticuler textField。 谢谢。

相关问题