iOS开发里键盘是经常需要打交道的地方,下面为大家带来我整理总结的几种隐藏键盘的方法。

一、隐藏自身软键盘

当对于有多个UITextField控件都想通过点击“Return”来隐藏自身软键盘的情况,这时的最好办法是使用Did End on Exit事件。在点击软键盘右下角的“Return”按钮后,会触发该事件。
该事件有一个sender参数表示当前文本框,这样便可以编写一个通用的事件处理方法(.m文件)。

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

然后在.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)、密码文本框(passTextField)、登录按钮(loginButton)。

我们希望——点击账号文本框软键盘的Return时跳转到密码文本框,点击密码文本框软键盘的Return时执行登录。

因为这两个文本框的功能不同,不能像上一节那样写一个TextField_DidEndOnExit做统一处理,而应该分别建立各自的事件处理方法。

回到storyboard,右击账号文本框(nameTextField)弹出面板,按住Did End on Exit事件旁边的圆圈,然后拖曳到右侧.h文件的空白地方,此时会弹出一个对话框给方法命名。输入名称 (nameTextField_DidEndOnExit)后回车确定,便自动生成了该事件方法。

随后按照同样的做法,为密码文本框(passTextField)的Did End on Exit事件连接方法(passTextField_DidEndOnExit)。

来到.m文件,填写具体代码——

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

对于账号文本框转密码文本框,不需要隐藏软键盘,只需要调用becomeFirstResponder激活新的文本框就行了。

对于密码文本框Return后执行登录。因为不再需要显示软键盘,所以还是得调用resignFirstResponder隐藏软键盘,然后触发登录按钮(loginButton)的UIControlEventTouchUpInside事件进行登录。

运行一下,可发现已经达到我们希望的效果了。点击账号文本框软键盘的Return时跳转到密码文本框,点击密码文本框软键盘的Return时执行登录。

怎么都是“Return”,转换文本框与执行登录明明是不同的功能?

于是将账号文本框的Return Key属性设为“Next”,将密码文本框的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];
  4. }

(via:zz_mm的专栏)

转载于:https://www.cnblogs.com/hanzhuzi/p/4060546.html

iOS开发隐藏键盘方法总结相关推荐

  1. iOS开发中键盘样式和自定义键盘。

    文章目录 系统自带的样式 自定义键盘 在系统自带键盘基础上自定义键盘 完全自定义键盘 自定义全部类型键盘 系统自带的样式 在iOS开发中系统自带键盘已经有很多样式,但是有时候并不能满足我们都开发需求, ...

  2. iOS开发自定义键盘回车键Return Key

    在iOS开发中,用户在进行文本输入的时候,往往会用到虚拟键盘上的回车键,也就是Return Key.回车键有时候可以是"完成"(表示输入结束),可以是"下一项" ...

  3. android隐藏键盘方法,【工具类】Android 最有效的隐藏软键盘方法

    前言 在平时的 App 开发中, 免不了会遇到需要开发者隐藏软键盘的情况, 比如当在多个输入框填入个人基本信息, 最后有个保存按钮, 点击即可将个人基本信息保存, 这时就需要开发者编写代码去隐藏软键盘 ...

  4. android隐藏键盘方法,Android中点击隐藏软键盘最佳方法

    实现功能:点击EditText,软键盘出现并且不会隐藏,点击或者触摸EditText以外的其他任何区域,软键盘被隐藏: 1.重写dispatchTouchEvent()方法,获取当前触摸事件为DOWN ...

  5. iOS开发隐藏tabBar的问题

    开发中遇到第一个页面需要显示tabBar,但是第二个页面不需要显示,当回到第一个页面的时候又需要显示的情况. 在第一个页面跳转到第二个页面的时候需要给第二个页面设置tabBar的隐藏 - (void) ...

  6. iOS开发- 隐藏状态栏(电池栏)

    分为两种情况: 1. 想要隐藏某个视图的状态栏, 比如说, 从界面A, push 到界面B的时候, 界面A原本显示状态栏, 然而我们需要界面B不显示状态栏. 这时候, 可以这样做: 在B中实现: - ...

  7. 不知道当前谁激活键盘时的隐藏键盘方法

    2019独角兽企业重金招聘Python工程师标准>>> [[UIApplication sharedApplication] sendAction:@selector(resignF ...

  8. iOS 开发的资源整理

    本文整理了常用的iOS.mac开源项目及类库,是开发者必备的一份资料,现在分享给广大的iOS程序员兄弟们,希望给他们的开发工作带来帮助. UI 下拉刷新 EGOTableViewPullRefresh ...

  9. iOS开发之资料收集

    github排名:https://github.com/trending, github搜索:https://github.com/search. 此文章转自github:https://github ...

最新文章

  1. SQLSERVER2012里的扩展事件初尝试(上)
  2. java 链表中倒数第k个结点
  3. C# 得到本机局域网IP地址
  4. boost install on prinse 12.04 ubuntu
  5. 量子力学问题matlab求解,一个关于量子力学中的matlab的问题
  6. es6 语法 (Decorator)
  7. Bootstrap -- 初见 Bootstrap
  8. 西门子SIMATIC S7-1500,ET 200SP,HMI触摸屏面板产品型号
  9. Excel·VBA破解密码
  10. Python实现猜拳游戏
  11. 直播 编解码、 协议、网络传输
  12. 计算机硬件介绍之CPU与多线程
  13. python自学1:更改excel内容案例及技术总结
  14. Unity_ClickToShow_FadeInAndOut
  15. 双群晖nas数据备份同步
  16. 简单的STM32蓝牙遥控小车完整项目及资料分享,超全
  17. 卸载idea2020删除以前的配置_系统瘦身指南:卸载软件,看着简单,实际贼困难...
  18. 微软股价创14年新高
  19. 老板与管理者的区别(zt)
  20. 数字内容产业发展路径与趋势

热门文章

  1. 三套JSP源代码的安装部署过程和遇到的问题图解
  2. 图解Win7下安装Oracle 12c
  3. C#实现注册码功能编程总结
  4. [转帖]Runtime, Engine, VM 的区别是什么?
  5. linux系统切换用户
  6. hibernate对象关系实现(二)一对一
  7. checkbox全选衍生问题讨论
  8. zookeeper C API
  9. python123平台作业答案第十一周_第十一周作业
  10. 前馈pid系数_SPMSM控制——基于模型的电流前馈控制及思考