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

ios 去掉屏幕键盘的方法

2013-07-01 11:32 169 查看
//定义两个文本框
UITextField *textName;
UITextField *textSummary;

//点击return 按钮 去掉
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
//点击屏幕空白处去掉键盘
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[self.textName resignFirstResponder];
[self.textSummary resignFirstResponder];
}


在iOS开发中,对UITextField进行编辑的时候键盘会自己弹出来。在编辑完成的时候,需要将键盘隐藏掉。隐藏键盘有很多种实现方法,最常见的是把TextField的firstResponder resign掉,即[textField resignFirstResponder]。

下面介绍的是如何在键盘显示的时候,点击屏幕除了键盘以外的任何地方,将键盘隐藏。

基本思想如下: 1. 在ViewController载入的时候,将键盘显示和消失的Notification添加到self.view里。 2. 分别在键盘显示和消失时添加和删除TapGestureRecognizer 就这么简单。

示例代码如下: UIViewController的源代码里:

- (void)viewDidLoad
{
[super viewDidLoad];

[self setUpForDismissKeyboard];
}
- (void)setUpForDismissKeyboard {

NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
UITapGestureRecognizer *singleTapGR =
[[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(tapAnywhereToDismissKeyboard:)];
NSOperationQueue *mainQuene =[NSOperationQueue mainQueue];
[nc addObserverForName:UIKeyboardWillShowNotification
object:nil
queue:mainQuene
usingBlock:^(NSNotification *note){
[self.view addGestureRecognizer:singleTapGR];
}];
[nc addObserverForName:UIKeyboardWillHideNotification
object:nil
queue:mainQuene
usingBlock:^(NSNotification *note){
[self.view removeGestureRecognizer:singleTapGR];
}];
}

- (void)tapAnywhereToDismissKeyboard:(UIGestureRecognizer *)gestureRecognizer {
//此method会将self.view里所有的subview的first responder都resign掉
[self.view endEditing:YES];
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐