您的位置:首页 > 移动开发 > IOS开发

iOS中键盘隐藏几种方式

2015-05-18 13:48 323 查看
转载学习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 isEqualToStringL@"\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];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: