总结IOS中隐藏软键盘的三种方式

一、使用软键盘的 Done 键隐藏键盘

出发软键盘隐藏最常用的事件是文本框的 Did End on Exit,它在用户按软键盘中的 Done 键时发生。选中一个UITextField控件,点击鼠标右键弹出面板,鼠标左键按住 Did End on Exit 事件旁边的圆圈,然后拖曳到右侧 .h 文件中,命名为 CloseTheKeyBoard,在 m 文件中具体实现如下图所示(此处同时显示 .h 文件与 .m 文件):

总结IOS中隐藏软键盘的三种方式

当页面中有很多个文本框时,如果每次都需要点文本框激活软键盘、输入后点击Return隐藏软键盘、再点击下一个文本框……这样操作起来太繁琐了。 于是我们希望能够实现点击Return时能够自动转到下一个文本框。尤其是对于最后一个文本框,希望能够在点击Return时执行下一步操作。

例如对于登录页面。它上面有账号文本框(nameTextField)、密码文本框(passTextField)、登录按钮(loginBtn)。
我们希望——点击账号文本框软键盘的Return时跳转到密码文本框,点击密码文本框软键盘的Return时执行登录。
因为这两个文本框的功能不同,不能像上一节那样写一个CloseTheKeyBoard做统一处理,而应该分别建立各自的事件处理方法。

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

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

总结IOS中隐藏软键盘的三种方式

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

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

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

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

于是将账号文本框的Return Key属性设为“Next”,将密码文本框的Return Key属性设为“Done”,使界面与功能一致。

二、轻触背景隐藏软键盘(Touch Down事件触发)

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

总结IOS中隐藏软键盘的三种方式

三、轻触背景隐藏软键盘(通过背景透明大按钮触发)

将视图库中的 Button 控件拖动到设计界面,将 Button 控件的大小进行调整,使其可以覆盖整个设计界面。选择菜单栏中的Editor|Arrange|Send to Back 命令,将 Button 控件放在所有控件的后面。将 Button 控件的标题双击进行删除,将按钮与 .h 文件进行 hideKeyBoard 动作关联,将用户设计界面的文本框控件与插座变量 myTextField 进行关联。 具体代码如下图:

总结IOS中隐藏软键盘的三种方式

四、总结

以上就是自身总结的IOS隐藏软键盘的三种方法,后续会陆续整理一些其他技巧与方法,感兴趣的朋友们可以继续关注我们。

时间: 2016-08-21

ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)

在使用ionic开发IOS系统微信的时候会有一个苦恼的问题,填写表单的时候键盘会挡住输入框,其实并不算什么大问题,只要用户输入一个字就可以立刻看见输入框了. 可惜的是,有些客户是不讲理的,他才不管这个问题,反正就是不行,所以在一天睡觉的时候突然惊醒,想出来这个方案. 我就不仔细讲代码了,直接上图 angular.module('MyApp') .directive('focusInput', ['$ionicScrollDelegate', '$window', '$timeout', '$io

解决ios模拟器不能弹出键盘问题的方法

其实这个问题,多多少少的新人都遇到过,主要可能是我们误使用快捷键切换造成的!   解决办法:如上图:切换模拟器到前台,画红线的第一个意思是连接实体键盘,选中的话就是在模拟器上我们直接可以使用外接键盘进行输入:第二行画横线的意思就是使用软键盘!如果模拟器不能弹出键盘,我们可以手动去掉第一行画红线的选中状态,或者直接使用快捷键commod + k 切换,如果需要使用实体键盘,选中第一行红线的选项,或者使用快捷键shift + commod +k 切换! 问题就这样解决了,希望这篇短小的文章对大家的学

IOS开发中键盘输入屏幕上移的解决方法

在IOS开法中经常会遇到键盘遮挡屏幕的事情(比如输入账号密码验证码等等),就使得原本都不大的屏幕直接占了一半甚至更多的位置,这倒无所谓,关键是挡住了下面的按钮.这样的话按钮的事件也就触发不了,最好的解决办法就是当输入这些信息的时候让整个屏幕上移一个键盘的位置,或者上移到指定的位置. 首先一般输入的话都用的是UITextField,所以要监听用户什么时候开始输入和什么时候结束输入,直接设置代理代理就行了,要遵受 UITextFieldDelegate协议. //遵循协议 @interface Vi

iOS应用开发中监听键盘事件的代码实例小结

1.注册监听键盘事件的通知 复制代码 代码如下: [[NSNotificationCenter defaultCenter] addObserver:self                                              selector:@selector(keyboardWillShow:)                                                  name:UIKeyboardWillShowNotification   

总结IOS关闭键盘/退出键盘的五种方式

话不多说,接下来就是几种实现方式: 1,点击编辑区以外的地方(UIView) 这是一种很直觉的方法,当不再需要使用虚拟键盘时,只要点击虚拟键盘和编辑区域外的地方,就可以将键盘收起,下面程式码是在 UIView 中内建的触碰事件方法函式,您可以参考 Touch Panel / 触碰萤幕 / 压力感应器的基本使用方式一文,找到更多关于触碰事件的方法函式. – (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { if (![

iOS中的UIKeyboard键盘视图使用方法小结

一.键盘风格   UIKit框架支持8种风格键盘. 复制代码 代码如下: typedef enum {      UIKeyboardTypeDefault,                // 默认键盘:支持所有字符      UIKeyboardTypeASCIICapable,           // 支持ASCII的默认键盘      UIKeyboardTypeNumbersAndPunctuation,  // 标准电话键盘,支持+*#等符号      UIKeyboardType

iOS键盘自适应弹出效果

一.iOS键盘自适应弹出效果图 二.工程图 三.代码 ViewController.h #import <UIKit/UIKit.h> @interface ViewController : UIViewController <UITextFieldDelegate> @end ViewController.m #import "ViewController.h" @interface ViewController () @end @implementation

IOS关闭键盘的方法

首先输入完成后按键盘上的done关闭键盘 首先在Interface Builder中选择TextFields,然后在Text Field Attributes中找到Text Input Traits,选择Return Key为done.OK 定义方法 复制代码 代码如下: - (IBAction) textFieldDoneEditing:(id)sender;    //按下Done键关闭键盘 实现方法 复制代码 代码如下: //按完Done键以后关闭键盘 - (IBAction) textF

UiOS开发中ITextView回收或关闭键盘使用方法总结

iOS开发中,发现UITextView没有像UITextField中textFieldShouldReturn:这样的方法,那么要实现UITextView关闭键盘,就必须使用其他的方法,下面是可以使用的几种方法. 1.如果你程序是有导航条的,可以在导航条上面加多一个Done的按钮,用来退出键盘,当然要先实UITextViewDelegate. - (void)textViewDidBeginEditing:(UITextView *)textView { UIBarButtonItem *don

iOS 开发之 - 关闭键盘 退出键盘 的5种方式

iOS 开发之 - 关闭键盘 退出键盘 的5种方式  1.点击编辑区以外的地方(UIView) 2.点击编辑区域以外的地方(UIControl) 3.使用制作收起键盘的按钮 4.使用判断输入字元 5.关于键盘遮蔽的问题 1,点击编辑区以外的地方(UIView) 这是一种很直觉的方法,当不再需要使用虚拟键盘时,只要点击虚拟键盘和编辑区域外的地方,就可以将键盘收起,下面程式码是在 UIView 中内建的触碰事件方法函式,您可以参考 Touch Panel / 触碰萤幕 / 压力感应器的基本使用方式一

iOS关闭虚拟键盘方法汇总

在iOS应用开发中,有三类视图对象会打开虚拟键盘,进行输入操作,但如何关闭虚拟键盘,却没有提供自动化的方法.这个需要我们自己去实现.这三类视图对象分别是UITextField,UITextView和UISearchBar. 这里介绍一下UITextField中关闭虚拟键盘的几种方法. 第一种方法,使用它的委托UITextFieldDelegate中的方法textFieldShouldReturn:来关闭虚拟键盘. 在UITextField视图对象如birdNameInput所在的类中实现这个方法

IOS 开发UITextView回收或关闭键盘

IOS 开发UITextView回收或关闭键盘 iOS开发中,发现UITextView没有像UITextField中textFieldShouldReturn:这样的方法,那么要实现UITextView关闭键盘,就必须使用其他的方法,下面是可以使用的几种方法. 1.如果你程序是有导航条的,可以在导航条上面加多一个Done的按钮,用来退出键盘,当然要先实UITextViewDelegate. - (void)textViewDidBeginEditing:(UITextView *)textVie

IOS数字键盘左下角添加完成按钮的实现方法

IOS数字键盘左下角添加完成按钮的实现方法 实现代码: - (void)addDoneButtonToNumPadKeyboard { UIButton *doneButton = [UIButton buttonWithType:UIButtonTypeCustom]; if (systemVersion < 8.0){ doneButton.frame = CGRectMake(0, 163, 106, 53); }else{ doneButton.frame = CGRectMake(0,

iOS中键盘 KeyBoard 上添加工具栏的方法

iOS中 键盘 KeyBoard 上怎么添加工具栏? 如图中所示 在键盘上面加一条工具栏 大致思路是提前创建好工具栏,在键盘弹出的时候将工具栏显示出来,在键盘消失的时候让工具栏隐藏 上代码 设置两个变量 UIView * _toolView; //工具栏 UITextField *textField;// 输入框 呼出键盘用 创建工具栏 输入框 添加键盘弹出 消失的通知 - (void)viewDidLoad { [super viewDidLoad]; // Do any additional

终于发现了鼠标关机后仍然发光的原因了与关闭键盘鼠标开机功能的方法第1/2页

主板的键盘鼠标开机功能是造成鼠标在关机后仍然发光的最普遍的原因--为了实现键盘鼠标开机.网络唤醒等电源管理功能,目前市场上主流的ATX12V电源都会向主板提供+5VSB的供电.也就是说,主流ATX电源在关机后并没有切断所有的电压供给,而是保留了一组+5VSB输出为主板供电,让主板.键盘鼠标等处于待机状态.由于眼下绝大多数主板都支持PS/2键盘鼠标开机,所以在关机后电源仍然为主板的PS/2口供电,让鼠标处于待机状态,这时候最明显的特征就是光电鼠标的扫描灯仍然会发光. 如果大家的主板只支持PS/2键

IOS NSNotification 键盘遮挡问题的解决办法

IOS NSNotification 键盘遮挡问题的解决办法 从键盘通知中获得键盘尺寸 键盘尺寸存在于NSNotification中. 1:在AddDrinkViewController中添加keyboardDidShow和keyboardDidHide方法 2:在viewWillAppear中注册UIKeyboardDidshowNotification与UIKeyboardDidHideNotification. 3:在viewWillDisappear中取消对所有事件的订阅注册 4:在Ad