zoukankan      html  css  js  c++  java
  • iOS开发隐藏键盘方法总结

    以下为大家带来我整理总结的几种隐藏键盘的方法。

    一、隐藏自身软键盘

    当对于有多个UITextField控件都想通过点击“Return”来隐藏自身软键盘的情况,这时的最好办法是使用Did End on Exit事件。在点击软键盘右下角的“Return”button后,会触发该事件。


    该事件有一个sender參数表示当前文本框,这样便能够编写一个通用的事件处理方法(.m文件)

    1. - (IBAction)TextField_DidEndOnExit:(id)sender { 
    2.     // 隐藏键盘. 
    3.     [sender resignFirstResponder]; 

    然后在.h文件里填写该方法的声明——

    1. - (IBAction)TextField_DidEndOnExit:(id)sender; 

    回到storyboard,并按command+option+enter打开辅助窗体,使辅助窗体显示.h文件。

    选中一个UITextField控件,点击鼠标右键弹出面板,鼠标左键按住Did End on Exit事件旁边的圆圈,然后拖曳到右側.h文件的TextField_DidEndOnExit方法上,便会建立好事件连接。

    随后依照相同的做法。将其它UITextField控件的Did End on Exit事件也连接到TextField_DidEndOnExit方法。

    执行一下,可发现每一个文本框的软键盘都能够通过点击“Return”来隐藏了。

    二、点击Return自己主动转到下个文本框

    当页面中有非常多个文本框时,假设每次都须要点文本框激活软键盘、输入后点击Return隐藏软键盘、再点击下一个文本框……这样操作起来太繁琐了。 于是我们希望可以实现点击Return时可以自己主动转到下一个文本框。

    尤其是对于最后一个文本框。希望可以在点击Return时运行下一步操作。

    比如对于登录页面。

    它上面有 账号文本框(nameTextField)、password文本框(passTextField)、登录button(loginButton)。
    我们希望——点击账号文本框软键盘的Return时跳转到password文本框。点击password文本框软键盘的Return时运行登录。
    由于这两个文本框的功能不同,不能像上一节那样写一个TextField_DidEndOnExit做统一处理,而应该分别建立各自的事件处理方法。

    回到storyboard,右击账号文本框(nameTextField)弹出面板。按住Did End on Exit事件旁边的圆圈。然后拖曳到右側.h文件的空白地方,此时会弹出一个对话框给方法命名。

    输入名称 (nameTextField_DidEndOnExit)后回车确定,便自己主动生成了该事件方法。
    随后依照相同的做法。为password文本框(passTextField)的Did End on Exit事件连接方法(passTextField_DidEndOnExit)。


    来到.m文件。填写详细代码——

    1. - (IBAction)nameTextField_DidEndOnExit:(id)sender { 
    2.     // 将焦点移至下一个文本框. 
    3.     [self.passTextField becomeFirstResponder]; 
    4. - (IBAction)passTextField_DidEndOnExit:(id)sender { 
    5.     // 隐藏键盘. 
    6.     [sender resignFirstResponder]; 
    7.     // 触发登陆button的点击事件. 
    8.     [self.loginButton sendActionsForControlEvents:UIControlEventTouchUpInside]; 

    对于账号文本框转password文本框,不须要隐藏软键盘。仅仅须要调用becomeFirstResponder激活新的文本框即可了。


    对于password文本框Return后运行登录。由于不再须要显示软键盘。所以还是得调用resignFirstResponder隐藏软键盘,然后触发登录button(loginButton)的UIControlEventTouchUpInside事件进行登录。

    执行一下,可发现已经达到我们希望的效果了。点击账号文本框软键盘的Return时跳转到password文本框。点击password文本框软键盘的Return时执行登录。
    怎么都是“Return”,转换文本框与运行登录明明是不同的功能?
    于是将账号文本框的Return Key属性设为“Next”。将password文本框的Return Key属性设为“Done”。使界面与功能一致。

    三、轻触背景隐藏软键盘

    仅仅能通过Return关闭软键盘太不灵活了,应该提供轻触背景隐藏软键盘的功能。

    在storyboard,点击背景View。将它的Custom Class设置为UIControl。这样才会出现Touch Down事件。
    右击背景View弹出面板,按住Touch Down事件旁边的圆圈,然后拖曳到右側.h文件的空白地方建立该事件的处理方法。


    来到.m文件。填写详细代码——

    1. - (IBAction)View_TouchDown:(id)sender { 
    2.     // 发送resignFirstResponder. 
    3.     [[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil]; 

    把这些方法分享给大家希望能对读者朋友们有所帮助。


  • 相关阅读:
    ubuntu下文件安装与卸载
    webkit中的JavaScriptCore部分
    ubuntu 显示文件夹中的隐藏文件
    C语言中的fscanf函数
    test
    Use SandCastle to generate help document automatically.
    XElement Getting OuterXML and InnerXML
    XUACompatible meta 用法
    Adobe Dreamweaver CS5.5 中文版 下载 注册码
    The Difference Between jQuery’s .bind(), .live(), and .delegate()
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/6795462.html
Copyright © 2011-2022 走看看