iOS开发隐藏键盘方法总结
iOS开发里键盘是经常需要打交道的地方,下面为大家带来我整理总结的几种隐藏键盘的方法。
一、隐藏自身软键盘
当对于有多个UITextField控件都想通过点击“Return”来隐藏自身软键盘的情况,这时的最好办法是使用Did End on Exit事件。在点击软键盘右下角的“Return”按钮后,会触发该事件。
该事件有一个sender参数表示当前文本框,这样便可以编写一个通用的事件处理方法(.m文件)。
- - (IBAction)TextField_DidEndOnExit:(id)sender {
- // 隐藏键盘.
- [sender resignFirstResponder];
- }
然后在.h文件中填写该方法的声明——
- - (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文件,填写具体代码——
- - (IBAction)nameTextField_DidEndOnExit:(id)sender {
- // 将焦点移至下一个文本框.
- [self.passTextField becomeFirstResponder];
- }
- - (IBAction)passTextField_DidEndOnExit:(id)sender {
- // 隐藏键盘.
- [sender resignFirstResponder];
- // 触发登陆按钮的点击事件.
- [self.loginButton sendActionsForControlEvents:UIControlEventTouchUpInside];
- }
对于账号文本框转密码文本框,不需要隐藏软键盘,只需要调用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文件,填写具体代码——
- - (IBAction)View_TouchDown:(id)sender {
- // 发送resignFirstResponder.
- [[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil];
- }
(via:zz_mm的专栏)
转载于:https://www.cnblogs.com/hanzhuzi/p/4060546.html
iOS开发隐藏键盘方法总结相关推荐
- iOS开发中键盘样式和自定义键盘。
文章目录 系统自带的样式 自定义键盘 在系统自带键盘基础上自定义键盘 完全自定义键盘 自定义全部类型键盘 系统自带的样式 在iOS开发中系统自带键盘已经有很多样式,但是有时候并不能满足我们都开发需求, ...
- iOS开发自定义键盘回车键Return Key
在iOS开发中,用户在进行文本输入的时候,往往会用到虚拟键盘上的回车键,也就是Return Key.回车键有时候可以是"完成"(表示输入结束),可以是"下一项" ...
- android隐藏键盘方法,【工具类】Android 最有效的隐藏软键盘方法
前言 在平时的 App 开发中, 免不了会遇到需要开发者隐藏软键盘的情况, 比如当在多个输入框填入个人基本信息, 最后有个保存按钮, 点击即可将个人基本信息保存, 这时就需要开发者编写代码去隐藏软键盘 ...
- android隐藏键盘方法,Android中点击隐藏软键盘最佳方法
实现功能:点击EditText,软键盘出现并且不会隐藏,点击或者触摸EditText以外的其他任何区域,软键盘被隐藏: 1.重写dispatchTouchEvent()方法,获取当前触摸事件为DOWN ...
- iOS开发隐藏tabBar的问题
开发中遇到第一个页面需要显示tabBar,但是第二个页面不需要显示,当回到第一个页面的时候又需要显示的情况. 在第一个页面跳转到第二个页面的时候需要给第二个页面设置tabBar的隐藏 - (void) ...
- iOS开发- 隐藏状态栏(电池栏)
分为两种情况: 1. 想要隐藏某个视图的状态栏, 比如说, 从界面A, push 到界面B的时候, 界面A原本显示状态栏, 然而我们需要界面B不显示状态栏. 这时候, 可以这样做: 在B中实现: - ...
- 不知道当前谁激活键盘时的隐藏键盘方法
2019独角兽企业重金招聘Python工程师标准>>> [[UIApplication sharedApplication] sendAction:@selector(resignF ...
- iOS 开发的资源整理
本文整理了常用的iOS.mac开源项目及类库,是开发者必备的一份资料,现在分享给广大的iOS程序员兄弟们,希望给他们的开发工作带来帮助. UI 下拉刷新 EGOTableViewPullRefresh ...
- iOS开发之资料收集
github排名:https://github.com/trending, github搜索:https://github.com/search. 此文章转自github:https://github ...
最新文章
- SQLSERVER2012里的扩展事件初尝试(上)
- java 链表中倒数第k个结点
- C# 得到本机局域网IP地址
- boost install on prinse 12.04 ubuntu
- 量子力学问题matlab求解,一个关于量子力学中的matlab的问题
- es6 语法 (Decorator)
- Bootstrap -- 初见 Bootstrap
- 西门子SIMATIC S7-1500,ET 200SP,HMI触摸屏面板产品型号
- Excel·VBA破解密码
- Python实现猜拳游戏
- 直播 编解码、 协议、网络传输
- 计算机硬件介绍之CPU与多线程
- python自学1:更改excel内容案例及技术总结
- Unity_ClickToShow_FadeInAndOut
- 双群晖nas数据备份同步
- 简单的STM32蓝牙遥控小车完整项目及资料分享,超全
- 卸载idea2020删除以前的配置_系统瘦身指南:卸载软件,看着简单,实际贼困难...
- 微软股价创14年新高
- 老板与管理者的区别(zt)
- 数字内容产业发展路径与趋势