標籤:
轉載學習http://www.cnblogs.com/jerehedu/p/4496421.html
在ios開發中,經常需要輸入資訊。輸入資訊有兩種方式: UITextField和UITextView。資訊輸入完成後,需要隱藏鍵盤,下面為大家介紹幾種隱藏鍵盤的方式。
<一> 點擊鍵盤上的return按鈕,隱藏鍵盤
1、UITextField
遵守協議
@interface ViewController ()<UITextFieldDelegate>
設定代理
myTextfield.delegate=self;
使用代理中的方法
-(BOOL)textFieldShouldReturn:(UITextfield *)textField
{
[myTextField resignFirstRespinder];
return NO;
}
2、UITextView
遵守協議
@interface ViewController ()<UITextViewDelegate>
設定代理
textView.delegate=self;
使用代理中的方法:
-(BOOL)textView:(UITextview *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{
if([text [email protected]"\n"]){
[textView resignFirstResponder];
return NO;
}
return YES;
}
<二> 在鍵盤上添加一個按鈕,點擊按鈕隱藏鍵盤
設定按鈕
UIToolbar *topView=[[UIToolbar alloc]initWithFrame:CGRectMake(0,0,320,30)];
[topView setBarStyle:UIBarStyleBlack];
UIBarButtoItem *btnSpace=[[UIBarButtonItem alloc]initWihBarButtonSystemItem:
UIBarButtonSystemItemFlexibleSpace target:self action:nil];
UIBarButtonItem *doneButton=[[UIBarButtonItem alloc]initWithTitle:@"完成" style:
UIBarButtonItemStyleDone tsrget :self action: @swelector(dismissKeyBoard)];
NSArrar * buttonArray=[NSArrar arrayWithPbjects:btnSpace,doneButton,nil];
[topView setItems:buttonArray];
1、UITextField
[myTextField setInputAccessoryView:TopView];
2、UITExtView
[textView setInputAccessoryView:topView];
添加隱藏鍵盤方法
-(void)dismissKeyBoar
{
[myTextField resignFirstResponder];
[textView resignFirstResponder];
}
<三>點擊除鍵盤以外的空白位置讓鍵盤隱藏。
在touchesBegan:withEvent:方法中讓輸入控制項放棄第一響應者身份
-(void)touchesBegan:(NSString *)touches withEvent:(UIEvent *)event{
[myTextField resignFirstResponder];
[textView resignFirstReponder];
}
<四> 添加手勢,單擊除鍵盤以外的空白位置讓鍵盤隱藏
//添加單擊手勢
UITapGuestureRecognizer *tap=[[UITapGuestureRecognizer alloc]initWithTarget:self action:@selector(dismissKeyBoard)];
tap.numberOfTouchedRequired=1;
tap.numberOfTapsRequired=1;
[self.view addGestureRecgnizer:tap];
//隱藏鍵盤
-(void)dismissKeyBoard{
[myTextField resigFirstRespinder];
[textView resigFirstRespinder];
}
<五> 只要點擊除鍵盤以外的空白介面,無論是點擊哪個控制項彈出的鍵盤,鍵盤都隱藏
-(void)touchhesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
[self.view endEditing:YES];
}
iOS中鍵盤隱藏幾種方式