iOS中的幾種收鍵盤操作

問題描述:IOS開發中經常要用到輸入框,默認情況下點擊輸入框就會彈出鍵盤,但是必須要實現輸入框return的委託方法才能取消鍵盤的顯示,對於用戶體驗來說很不友好,可以實現點擊鍵盤以外的空白區域來將鍵盤隱藏;

原理:總的來數,有兩種可以使隱藏鍵盤的方法:

(1)[view endEditing:YES]  這個方法可以讓整個view取消第一響應者,從而讓所有控件的鍵盤隱藏。

(2)[textFiled resignFirstResponder] 這個則是比較常用的讓某個textFiled的鍵盤隱藏。


實現方式:

第一種: 使用view的touchesBegan:觸摸事件來實現對鍵盤的隱藏,當點擊view的區域就會觸發這個事件

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{  
    [textFiled resignFirstResponder];  
} 

第二種:創建自定義的觸摸手勢來實現對鍵盤的隱藏:

<pre name="code" class="objc">- (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{  
    [[[UIApplication sharedApplication] keyWindow] endEditing:YES];
}  


第三種:修改xib中UIView的Custom class爲UIControl,UIControl是一些常用控件如UIButton的父類,是UIView的派生類,實現了對觸摸和下按的封裝。

1、首先設置xib中得UIView的Custom class爲UIControl


2、設置關係事件,將xib中得UIView拖到.h區中

設置好事件爲Touch Up Inside

3、編寫隱藏代碼:

  1. - (IBAction)touchView:(id)sender {  
  2.      [self.view endEditing:YES];  
  3. }  


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章