注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

IOS & JAVA KEY

(iMilo)

 
 
 

日志

 
 
关于我

All the splendor in the world is not worth a good friend!! Hello my friend!!

网易考拉推荐

获得iPad虚拟键盘隐藏事件及UITextFiled延伸  

2011-08-10 22:01:11|  分类: IOS |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

获得iPad虚拟键盘隐藏事件及UITextFiled延伸

 

引入:

iPad上隐藏虚拟键盘可以通过点击右下角的按钮出发,也可以通过某些控件如(UITextFiledUISearchBar……)的resignFirstResponder方法,这里我们只说点击虚拟键盘右下角按钮。在点击虚拟键盘右下角的按钮时通知App(应用),让其做其他的处理。那么怎样实现呢?如下:

实现:

步骤1、注册事件,代码如下:

[[NSNotificationCenter defaultCenter]

      addObserver:self                                                         

      selector:@selector(keyboardWillHide:)                                                                 

      name:UIKeyboardWillHideNotification

      object:nil

];

步骤2、定义其他处理事件,代码如下:

/*

 * @DO为虚拟键盘添加(键盘隐藏事件)

 */

- (void) keyboardWillHide:(NSNotification *)note

{

     //这里是定义其他的处理事件(USER CODE

     //[baseView setContentOffset:CGPointMake(0,0)];

}

  

总结:

本文用到键盘隐藏事件的原因是:在一个UIScrollView视图上有某个输入控件如(UITextFiled),但是当UITextFiled获得焦点(即当前可输入),此时iPad会调出虚拟键盘,但这是会出现一种情况,那就是虚拟键盘可能会遮盖住你要输入的控件UITextFiled,这时我们该怎么处理?

解决方案:

步骤1、为当前输入控件UITextFiled设置delegate;

步骤2、设置输入控件的开始编辑事件:

- (void)textFieldDidBeginEditing:(UITextField *)textField

{

     CGPoint newPoint;

     if (textField == nameTF)

     {

       newPoint = CGPointMake(0, 10);

       [baseView setContentOffset:newPoint];

     }

     if (textField == pswdTF)

     {

       newPoint = CGPointMake(0, 160);

       [baseView setContentOffset:newPoint];

     }

}

说明:baseViewUIScrollViewnameTFpswdTFUITextFiled

步骤3设置输入控件结束返回事件:这里主要自动隐藏虚拟键盘、及重现设置UIScrollView的位置;

- (BOOL)textFieldShouldReturn:(UITextField *)textField

{

     if (textField == nameTF)

     {

       [phIDTF resignFirstResponder];

       [baseView setContentOffset:CGPointMake(0,0)];

     }

     if (textField == pswdTF)

     {

       [clueDescTF resignFirstResponder];

       [baseView setContentOffset:CGPointMake(0,0)];

     }

     return YES;

}

说明:baseViewUIScrollViewnameTFpswdTFUITextFiled

到此看上去,程序已经完成了,但是当我们输入内容后,直接按下虚拟键盘右下角的按钮时,我们会发现UIScrollView的位置并未重新设置为初始位置。然而这又不是我们希望看到的效果,这时我们就会想到,获得iPad虚拟键盘隐藏事件,执行我们自己想要的操作,步骤如下:

步骤4、为虚拟键盘的右下角按钮注册事件,并定义事件的内容(重新设置的位置为初始位置):

//注册事件

[[NSNotificationCenter defaultCenter]

      addObserver:self                                                         

      selector:@selector(keyboardWillHide:)                                                                 

      name:UIKeyboardWillHideNotification

      object:nil

];

//定义事件行为

- (void) keyboardWillHide:(NSNotification *)note

{

     [baseView setContentOffset:CGPointMake(0,0)];

}

   

  

其他:

2011-08-10

iMilo

     

     

 

  评论这张
 
阅读(2066)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017