iOS 中关闭键盘方法

摘要:
在iOS程序中当想要在文本框中输入数据,轻触文本框会打开键盘。对于iPad程序,其键盘有一个按钮可以用来关闭键盘,但是iPhone程序中的键盘却没有这样的按钮,不过我们可以采取一些方法关闭它。当按下键盘的Return键,会产生一个DidEndOnExit事件,此时,我们告诉文本框要放弃控件,于是键盘就消失了。当用户使用键盘时,FirstResponder就是这个键盘,resignFirstResponder方法,顾名思义,就是放弃FirstResponder。现在,已经实现了轻触Return键关闭键盘。

在 iOS 程序中当想要在文本框中输入数据,轻触文本框会打开键盘。对于 iPad 程序,其键盘有一个按钮可以用来关闭键盘,但是 iPhone 程序中的键盘却没有这样的按钮,不过我们可以采取一些方法关闭它。例如,我们可以实现按下 Return (有时也是 Done、Research 等)键关闭键盘,或者,更人性化的,轻触背景关闭键盘。

1、首先讲一下按下Return键关闭键盘。

当按下键盘的 Return 键,会产生一个 Did End On Exit 事件,此时,我们告诉文本框要放弃控件,于是键盘就消失了。

假设,我们已经创建了一个 Single View Application ,并打开 ViewController.xib 文件,在 View 上拖上去了三个 Text Field ,然后,我们把这三个文本框映射到 ViewController.h 中,名称依次是 firstField、secondField 以及 thirdField 。如下图:

iOS 中关闭键盘方法第1张

在这个基础上,实现轻触 Return 关闭键盘,步骤为:

(1)在 ViewController.h 中声明一个方法:

- (IBAction)textFiledReturnEditing:(id)sender;

(2)在 ViewController.m 中实现这个方法:

-(IBAction)textFiledReturnEditing:(id)sender {
[sender resignFirstResponder];
}

所谓 First Responder 指的就是用户当前正在与之交互的控件。当用户使用键盘时,First Responder 就是这个键盘,

resignFirstResponder 方法,顾名思义,就是放弃 First Responder 。

(3)让这三个文本框都映射到 textFiledReturnEditing 方法,不过此时的事件应当是 Did End On Exit ,具体操作是:

打开 Assistant Editor ,左边打开 ViewController.xib ,右边打开 ViewController.h ,在 Xcode 最右边打开 Connector Inspector ,然后在 View 中选择第一个文本框,在 Connector Inspector 中找到 Did End On Exit ,从它右边的圆圈中拉出映射线,映射到 ViewController.h 的 textFiledReturnEditing 方法,如下图:

iOS 中关闭键盘方法第2张

给其他两个文本框进行同样的操作。现在,已经实现了轻触 Return 键关闭键盘。

2、下面介绍更人性化的方法,轻触背景关闭键盘。

跟上面的步骤差不多,首先定义一个方法,然后实现这个方法,接下来将指定的控件映射到这个方法,并选择好所触发的事件。不同的是,这次我们要选择的控件不是上边的文本框,而是视图 View 本身。

(1)在 ViewController.h 文件中添加方法声明代码:

- (IBAction)backgroundTap:(id)sender;

(2)在ViewController.m中实现这个方法:

- (IBAction)backgroundTap:(id)sender {
[firstField resignFirstResponder];
[secondField resignFirstResponder];
[thirdField resignFirstResponder];
}

需要说明的是,[firstField resignFirstResponder];表示,如果firstField有FirstResponder的话就放弃它,我们不用先判断firstField是否有,这条语句完全正确。

(3)让 View 映射到这个方法,不过事先,我们先要改变 View 的类型。

打开xib,选中 View ,打开 Identity Inspector ,在 class 中选择 UIControl :

iOS 中关闭键盘方法第3张

(4)打开Assistant Editor ,左边打开 ViewController.xib ,右边打开 ViewController.h ,在Xcode最右边打开 Connector Inspector ,在 ViewController.xib 中选择 Control ,在 Connector Inspector 中找到 Touch Down ,从它右边的圆圈中拉出映射线,映射到 ViewController.h 的 backgroundTap 方法,如下图:

iOS 中关闭键盘方法第4张

好了,可以运行下看看效果了:

iOS 中关闭键盘方法第5张iOS 中关闭键盘方法第6张iOS 中关闭键盘方法第7张

打开键盘之后,在背景区域点击一下,键盘就会向下收起来。

_本文从 http://my.oschina.net/plumsoft/blog/42545 中转载。

免责声明:文章转载自《iOS 中关闭键盘方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇WebAPI安全与认证授权 学习笔记JavaScript学习笔记及知识点整理_1下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

[转]html怎么把这个文本框变为透明

今天写html表单是想把文本框的背景白色去掉后来查了查 如果想要文本框也透明就看看下面的例子吧 样式表: <style type="text/css"><!-- .byte {BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;FONT-SIZE:9pt;BACKGROUND:none transpare...

[ PyQt入门教程 ] PyQt5基本控件使用:单选按钮、复选框、下拉框、文本框

本文主要介绍PyQt5界面最基本使用的单选按钮、复选框、下拉框三种控件的使用方法进行介绍。 1、RadioButton单选按钮/CheckBox复选框。需要知道如何判断单选按钮是否被选中。 2、ComboBox下拉框。需要知道如何对下拉框中的取值进行设置以及代码实现中如何获取用户选中的值。 带着这些问题下面开始介绍这RadioButton单选按钮、Chec...

[学习日记]在文本框最前面一行追加新内容的一个SUB

代码如下: PrivateSubappendresult()Subappendresult(ByValnewresultAsString)Dimnewlines()AsString=NewString(resultsbox.Lines.Length){}resultsbox.Lines.CopyTo(newlines,1)newlines(0)=newre...

Webform 常用控件

一,简单控件 1,Lable——标签:在网页中呈现出来的时候会变成span标签 属性:Text——标签上的文字 BackColor,ForeColor——背景色,前景色 Font——字体 Bold-加粗Italic-倾斜UnderLine-下划线 OverLine 上划线 StrikeOut 删除线Name - 字体名Size - 字体的大小 Bord...

jquery实现文本点击修改

直接点击文本进行修改的方式是比较快捷的,而且挺好用的,分享下,先看下效果: 页面简单表示的代码为:(这个无关紧要) <table class="tablefirst" id="radioSub"> <col style="5%"/> <col style="5%"/>...

HTML文本框样式大全

输入框景背景透明:<input style="background:transparent;border:1px solid #ffffff"> 鼠标划过输入框,输入框背景色变色:<INPUT value="Type here" NAME="user_pass" TYPE="text" SIZE="29" onmouseover="thi...