代码之家  ›  专栏  ›  技术社区  ›  RCIX

当我在iPhone上按“完成”时,键盘不会消失

  •  1
  • RCIX  · 技术社区  · 16 年前

    我正在尝试为iPhone实现一个hello world应用程序,我已经完成了一些。然而,我不知道如何让键盘消失。我见过 this

    - (BOOL)textFieldShouldReturn:(UITextField *)theTextField {
        if (theTextField == textField)
        {
            [textField resignFirstResponder];
        }
        return YES;
    }
    

    我确信这应该是显而易见的,但我找不到答案。提前感谢您的帮助!

    2 回复  |  直到 8 年前
        1
  •  4
  •   Tim    16 年前

    首先,澄清一下:您应该将文本字段的委托连接到文件的所有者,而不是将文件所有者的委托连接至文本字段。这听起来可能令人困惑,但您可以通过在Interface Builder中选择文本字段并检查其“委托”连接点是否指向文件所有者来轻松检查它。

    if

    - (BOOL)textFieldShouldReturn:(UITextField *)theTextField {
        [theTextField resignFirstResponder];
        return YES;
    }

    如果它仍然不起作用,请检查文件所有者的类是否与您实现该方法的类相同。例如,如果代码在RootViewController.m中,则您要在Interface Builder中指定文件所有者是RootViewController的实例。

        2
  •  0
  •   Jonathan Sterling    16 年前

    代码

    - (BOOL)textFieldShouldReturn:(UITextField *)theTextField {
        if (theTextField == textField)
        {
            [textField resignFirstResponder];
        }
        return YES;
    }
    

    您没有将jucipalFirstResponder调用到委托方法的参数,而是将其调用到我认为是实例变量的对象。这应该写如下:

    - (BOOL)textFieldShouldReturn:(UITextField *)theTextField {
        if (theTextField == [self textField]) {
            [theTextField resignFirstResponder];
        }
        return YES;
    }