我有相当多的控件分散在我的表格中的许多表格单元格中,我想知道是否有一种更简单的方法来消除键盘,而不必循环遍历所有的控件并将它们全部辞职为第一响应器。我想问题是…我如何得到当前的第一个响应器的键盘?
当前回答
你必须使用其中一种方法,
[self.view endEditing:YES];
or
[self.textField resignFirstResponder];
其他回答
您可以使用[view ended:YES]强制当前正在编辑的视图放弃其第一响应器状态。这样就隐藏了键盘。
与-[UIResponder resignFirstResponder]不同,-[UIView enditing:]将通过子视图搜索当前的第一响应器。所以你可以把它发送到顶层视图(比如self)。UIViewController中的view)它会做正确的事情。
(这个答案之前包含了几个其他的解决方案,它们也可以工作,但比必要的更复杂。为了避免混淆,我把它们去掉了。)
从UITableView和UIScrollView中取消键盘的最好方法是:
tableView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag
在swift 3中,您可以执行以下操作
UIApplication.shared.sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil)
我们很快就能做到
UIApplication.sharedApplication().sendAction("resignFirstResponder", to: nil, from: nil, forEvent: nil)
你应该发送enditing:到工作窗口作为UIView的子类
[[UIApplication sharedApplication].windows.firstObject endEditing:NO];
推荐文章
- 如何设置回退按钮文本在Swift
- 模拟器慢动作动画现在打开了吗?
- 滑动删除和“更多”按钮(就像iOS 7的邮件应用程序)
- 如何比较两个nsdate:哪个是最近的?
- 使UINavigationBar透明
- 删除/重置核心数据中的所有条目?
- Swift to Objective-C头未在Xcode 6中创建
- setNeedsLayout vs. setNeedsUpdateConstraints和layoutIfNeeded vs. updateConstraintsIfNeeded
- 不区分大小写的比较
- Android SDK管理器未安装组件
- 编译警告:对于架构i386,没有处理文件的规则
- 从ViewController调用App Delegate方法
- 如何复制文本到剪贴板/剪贴板与Swift
- 解释iOS7中automyadjustsscrollviewinsets, extendedlayoutinclesopaquebars, edgesForExtendedLayout之间的区别
- 你能把一个UIGestureRecognizer附加到多个视图吗?