码迷,mamicode.com
首页 > 其他好文 > 详细

取消键盘第一响应

时间:2016-04-19 19:50:15      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:

[摘要:IOS7 面击空缺处隐蔽键盘的几种方式 IOS开辟中常常要用到输进框,默许环境下面击输进框便会弹出键盘,然则必需要完成输进框return的托付方式才干作废键盘的表现,对用户体验来讲] 


IOS7 点击空白处隐藏键盘的几种方法


IOS开发中经常要用到输入框,默认情况下点击输入框就会弹出键盘,但是必须要实现输入框return的委托方法才能取消键盘的显示,对于用户体验来说很不友好,我们可以实现点击键盘以外的空白区域来将键盘隐藏,以下我总结出了几种隐藏键盘的方法:


首先说明两种可以让键盘隐藏的Method:

1、[view endEditing:YES]  这个方法可以让整个view取消第一响应者,从而让所有控件的键盘隐藏。

2、[textFiled resignFirstResponder] 这个则是比较常用的让某个textFiled的键盘隐藏。


接下来就是几种实现方式:

第一种: 使用view的touchesBegan:触摸事件来实现对键盘的隐藏,当点击view的区域就会触发这个事件

[html] view plaincopyprint?技术分享技术分享
  1. -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{  
  2.     [textFiled resignFirstResponder];  
  3. }  
第二种:创建自定义的触摸手势来实现对键盘的隐藏:

[html] view plaincopyprint?技术分享技术分享
  1. - (void)viewDidLoad  
  2. {  
  3.     [super viewDidLoad];  
  4.     UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(keyboardHide:)];  
  5.     //设置成NO表示当前控件响应后会传播到其他控件上,默认为YES。  
  6.     tapGestureRecognizer.cancelsTouchesInView = NO;  
  7.     //将触摸事件添加到当前view  
  8.     [self.view addGestureRecognizer:tapGestureRecognizer];  
  9. }  
  10.   
  11. -(void)keyboardHide:(UITapGestureRecognizer*)tap{  
  12.     [textFiled resignFirstResponder];  
  13. }  


第三种:修改xib中UIView的Custom class为UIControl,UIControl是一些常用控件如UIButton的父类,是UIView的派生类,实现了对触摸和下按的封装。

1、首先设置xib中得UIView的Custom class为UIControl

技术分享
2、设置关系事件,将xib中得UIView拖到.h区中

技术分享设置好事件为Touch Up Inside

3、编写隐藏代码:

[html] view plaincopyprint?技术分享技术分享
  1. - (IBAction)touchView:(id)sender {  
  2.      [self.view endEditing:YES];  
  3. }  
好了,以上是三种比较常用的隐藏键盘的方法,每种都可以用于不同的场合和它的利与弊,就看如何运用了。 

设置 text显示位置

默认情况下,当向textField输入文字时,文字会紧贴在textField左边框上.我们可以通过设置textField的leftView,设置一个只有宽度的leftView.这样还不够,因为默认leftView是不显示的.还需要将leftViewMode设置为UITextFieldViewModeAlways.这样就完成了. 
(小技巧:通过查询UITextField的头文件可以看出leftView和leftViewMode这两个属性写在了一组,与其他属性之间是分开的,说明这两个属性的关系很紧密)

 //设置文本框左边的view
   UITextField *textField = [[UITextField alloc]init];
   textField.frame = CGRectMake(103030030);
   [self.view addSubview:textField];
   textField.leftView = [[UIView alloc]initWithFrame:CGRectMake(0080)];
   //设置显示模式为永远显示(默认不显示)
   textField.leftViewMode = UITextFieldViewModeAlways;



关于快捷键的网址 http://www.minroad.com/?p=150

取消键盘第一响应

标签:

原文地址:http://blog.csdn.net/mr_____king/article/details/51189589

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!