即使代码已运行,resignFirstResponder 也不会关闭键盘

Joh*_*Cox 3 resignfirstresponder ios7

这行代码在我的电子邮件文本字段编辑DidEnd 时运行。NSLog 运行,所以我知道该函数已运行,但键盘仍然没有消失。我已将文本框连接为委托。我已经确保故事板中的连接存在。依然不会改变。帮助。谢谢。

- (IBAction)emailDone2:(id)sender
{
    [_email resignFirstResponder];
    NSLog(@"emailDone2");
}
Run Code Online (Sandbox Code Playgroud)

编辑* *我按照指示更改了代码,但这仍然没有任何作用。什么也没有变。

- (IBAction)emailDone2:(id)sender
{
    [self.view endEditing:TRUE];
}
Run Code Online (Sandbox Code Playgroud)

Joe*_*hon 5

问题是,你认为的第一响应者和谁第一响应者可能并不相同。幸运的是,已经有一种方法可以解决这个问题。尝试使用

[topView endEditing:YES];
Run Code Online (Sandbox Code Playgroud)

其中 topView 是最顶层的视图。endEditing 将递归遍历子视图,找到第一响应者,并告诉它放弃第一响应者。这比跟踪哪个子视图拥有它要简单得多。

在键盘中发现这个没有响应 resignFirstResponder,在侧边栏中链接到这个问题。