如果您想通过在键盘外部轻按来隐藏键盘,则可以使用此技巧(仅适用于Objective-C):
- (void)viewDidLoad {
[super viewDidLoad];
// 在文本字段外点击时关闭键盘
UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self.view action:@selector(endEditing:)];
[tapGestureRecognizer setCancelsTouchesInView:NO];
[self.view addGestureRecognizer:tapGestureRecognizer];
}对于Swift,将有更多代码:
override func viewDidLoad() {
super.viewDidLoad()
// 在文本字段外点击时关闭键盘
let tapGestureRecognizer: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(YourVCName.dismissKeyboard))
view.addGestureRecognizer(tapGestureRecognizer)
}
//识别到轻拍时调用此函数。
func dismissKeyboard() {
//使视图(或其嵌入式文本字段之一)退出第一响应者状态。
view.endEditing(true)
}另一个Swift 3 / iOS 10示例
class vc: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// 加载视图后,通常从笔尖进行任何其他设置。
txtSomeField.delegate= self
}
}
extension vc: UITextFieldDelegate {
//在键盘外部触摸UI时,隐藏任何文本字段的键盘。
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?)
{
self.view.endEditing(true) //隐藏键盘
}
}