標籤:
IOS7 點擊空白處隱藏鍵盤的幾種方法
IOS開發中經常要用到輸入框,預設情況下點擊輸入框就會彈出鍵盤,但是必須要實現輸入框return的委託方法才能取消鍵盤的顯示,對於使用者體驗來說很不友好,我們可以實現點擊鍵盤以外的空白地區來將鍵盤隱藏,以下我總結出了幾種隱藏鍵盤的方法:
首先說明兩種可以讓鍵盤隱藏的Method:
1、[view endEditing:YES] 這個方法可以讓整個view取消第一響應者,從而讓所有控制項的鍵盤隱藏。
2、[textFiled resignFirstResponder] 這個則是比較常用的讓某個textFiled的鍵盤隱藏。
接下來就是幾種實現方式:
第一種: 使用view的touchesBegan:觸摸事件來實現對鍵盤的隱藏,當點擊view的地區就會觸發這個事件
- -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
- [textFiled resignFirstResponder];
- }
第二種:建立自訂的觸摸手勢來實現對鍵盤的隱藏:
- - (void)viewDidLoad
- {
- [super viewDidLoad];
- UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(keyboardHide:)];
- //設定成NO表示當前控制項響應後會傳播到其他控制項上,預設為YES。
- tapGestureRecognizer.cancelsTouchesInView = NO;
- //將觸摸事件添加到當前view
- [self.view addGestureRecognizer:tapGestureRecognizer];
- }
-
- -(void)keyboardHide:(UITapGestureRecognizer*)tap{
- [textFiled resignFirstResponder];
- }
第三種:修改xib中UIView的Custom class為UIControl,UIControl是一些常用控制項如UIButton的父類,是UIView的衍生類別,實現了對觸摸和下按的封裝。
1、首先設定xib中得UIView的Custom class為UIControl
2、設定關係事件,將xib中得UIView拖到.h區中
設定好事件為Touch Up Inside
3、編寫隱藏代碼:
- - (IBAction)touchView:(id)sender {
- [self.view endEditing:YES];
- }
好了,以上是三種比較常用的隱藏鍵盤的方法,每種都可以用於不同的場合和它的利與弊,就看如何運用了。
iOS 鍵盤隱藏