Objective-C,如何一般resignFirstResponder?

Rob*_*ain 5 objective-c ios

(我的老板说)我必须在navBar上实现一个"完成"按钮,以便视图中的各个项目(包含编辑框)将关闭他们的键盘(如果它们处于焦点).

似乎我必须遍历所有项目,然后在每个项目关注的可能性很小的情况下调用resignFirstResponder?这看起来有点混乱(如果其他人在将来添加更多项目时难以维护) - 有更好的方法吗?

Rob*_*ain 12

我找到了!

多亏了这个

我发现我需要做的就是: -

-(void) done {
    [[self.tableView superview] endEditing:YES];
}
Run Code Online (Sandbox Code Playgroud)

//也是[self.view endEditing:YES]; 工作良好

[备注]另外,我学会了如何做一个"eventFilter",以阻止UITableViewController吞噬背景触摸事件,它们到达之前拦截它们- 从该线程上相同的,精彩的帖子 - 请参阅"DismissableUITableView".[评论结束]

  • 这里有一个小问题,`-endEditing:`的BOOL参数实际上决定了视图是否会被迫辞退第一响应者状态.在视图上强制执行此操作意味着不会将`-canResignFirstResponder`发送到视图.使用`[self.view endEditing:NO];`表示正常行为. (3认同)