1

在我的 iPad 应用程序中有 3 个文本框,我在第二个文本框上使用 popoverview 控制器。这是2个案例

在第一种情况下:

当我完成第一个文本框的编辑并单击键盘上的下一个按钮时,键盘完美退出,popoverview 控制器在第二个文本框上打开。当第一个文本框的下一个按钮单击时,我在这里编写了代码第二个文本框应该成为 FirstResponder。

在第二种情况下:

这里的实际问题是,当我完成第一个文本框的编辑并直接触摸第二个文本框而不单击键盘上的下一个按钮时,那个时候 popoverview 控制器菜单在第二个文本框上打开并且键盘无法退出,键盘正在敲击他们我退出键盘的代码不起作用。

4

4 回答 4

0
-(void)textFieldDidBeginEditing:(UITextField *)textfield
{

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

     //Write all textField with resignFirstResponder
     }

 }
于 2013-04-09T07:39:18.623 回答
0

这是您处理软键盘的方法

iPhone教程中的软键盘处理

这里有三种简单的方法来处理键盘

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

在你的情况下,只需遵循第三种方式。 您需要做的只是创建一个方法,在该方法中调用

所需文本字段的方法。

并将相关的 UIView 类更新为 Interface Builder 中的 UIControl。因为我已经逐步编写了所有信息,以使其更加简单明了。

这是负责的代码片段

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

希望这会帮助你。

于 2013-04-09T09:11:33.487 回答
0

在下面的方法中编写您在键盘的 NEXT 按钮事件中使用的代码...

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField {
    if (textField == yourFirstTextBox) {
       // write your code here   
    }
    return YES;
}
于 2013-04-09T07:22:59.847 回答
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.view endEditing:YES];

  3. 而且你也可以为 popoverview 做额外的代码并且不返回意味着它不会给那个 perticuler textField 提供键盘。谢谢。

于 2013-04-09T10:28:53.987 回答