概述
当存在UItextField
时,通常有取消键盘的需求。一般有两种解决方案
-
手势关闭键盘:
UITapGestureRecognizer
/// 添加触摸识别 - (void)addTagGesture { UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(backgroundtouched)]; [self addGestureRecognizer:tap]; } - (void)backgroundtouched { [self endEditing:YES]; }
-
触摸背景
- 将super class 由UIView改为UIControl
- 添加Target
[self addTarget: action:forControlEvents:];
分析
- 通过手势触摸,只要点击屏幕就可消除键盘
- 触摸背景取消键盘有一个缺点:如果当前页面有很多控件,挡住了页面背景view,因此很难取消键盘。