iOS: 让键盘消失的的4种方法

转自:http://leopard168.blog.163.com/blog/static/168471844201422121310352/

在iOS app中,只要用到编辑框(UITextField)的地方,就得处理键盘消失 (dismiss keyboard)。

我先后用过4种方法,来处理键盘消失的问题。

1. 通过UITextFiledDelegate,来释放第一响应者 (resignFirstResponder);
这种通过delegate释放键盘的代码如下:

-(BOOL)textFieldShouldReturn:(UITextField*)textField {

[textField
resignFirstResponder];

returnYES;

}

以下3种方法是通过 响应事件来处理的:

2. 通过 Done键的 DidonExit method,来 resignFirstResponder;

3.  点击编辑框的背景图,让键盘消失。 方法: 将背景view 设为: UIControll。
UIView本身不能响应事件,而UIcontroll 是可以响应事件的。 UIControll 继承于
UIView;  通过调用 UIControll的 Touch Down 事件,让键盘消失;

4. 放置一个 UIButton ,将这个UIButton 布满全屏,当点击非编辑区域时,其实就是点击这个巨型的Button。 在这个button 事件中, resignFirstResponder 即可。

-(IBAction)backgroundTap:(id)sender {

[self.nameTextFieldresignFirstResponder];

[self.passwordTextFieldresignFirstResponder];

}

说明:这个method
模拟了用户的两种行为:

1.点击keyboard上的done键,让键盘消失;

2.点击编辑框以外的区域,让键盘消失。

特别说明一点:通过布满全屏的Button,这种方法要求:这个巨型的Button一定要放在最底层。否则的话,编辑框将无法接受输入的事件。

方案点评:

UITextFieldDelegate和UIControll方案,处理键盘消失问题,这是一种大智慧。而巨型Button和 didOnExit 方法,虽然也能用,但从软件编程思想上看,只能算是一种小聪明罢了。

小结:

只要有输入框存在,就得处理如何让键盘消失的问题。当然,你可以仅仅处理点击“done”按钮,来让键盘消失。但为了让用户有更好的体验,需要同时处理非编辑框的区域的事件响应。

iOS: 让键盘消失的的4种方法,布布扣,bubuko.com

时间: 2024-08-25 20:19:55

iOS: 让键盘消失的的4种方法的相关文章

iOS让键盘消失,取消第一响应,取消一级响应

在开发中经常会遇到输入文本内容的时候,输入完毕的时候怎么让键盘消失的问题,有的是更改键盘的按键的方法,有的是点击屏幕的其他地方让键盘消失,个人更倾向于第二种,点击屏幕的其他地方让键盘消失,要实现这种方法其实很简单,在当前控制器的View添加一个点击手势,当触发这个手势时可以让特定的TextFiled的取消第一响应,也就是 [TextFiled resignFirstResponder]; 同样的还适合于很多的控件,还有一种更好的那就是让整个View上的所有控件都结束编辑,这样键盘就消失了.对应的

IOS开发中数据持久化的几种方法--NSUserDefaults

IOS开发中数据持久化的几种方法--NSUserDefaults IOS 开发中,经常会遇到需要把一些数据保存在本地的情况,那么这个时候我们有以下几种可以选择的方案: 一.使用NSUserDefault是最简单直接的一个办法: 1)保存数据: 1 // 实例化一个NSUserDefaults单例对象 2 NSUserDefaults *user = [NSUserDefaults standardUserDefaults]; 3 // 把一个数组array保存在key为allContact的键值

iOS开发之动画编程的几种方法

iOS开发之动画编程的几种方法 IOS中的动画总结来说有五种:UIView<block>,CAAnimation<CABasicAnimation,CATransition,CAKeyframeAnimation>,NSTimer 这里我就总结了一下这五种方法,其实iOS开发中动画的编程都会在这里面变化,所以只要弄懂了这些动画编程就不难了. 一:UIView动画 一般方式 [UIView beginAnimations:@"ddd" context:nil];/

java 获取键盘输入常用的两种方法

java 获取键盘输入常用的两种方法 方法1: 通过 Scanner Scanner input = new Scanner(System.in); String s = input.nextLine(); input.close(); 方法2: 通过 BufferedReader BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); String s = input.readLine(); 原文

iOS获取设备唯一标识的8种方法

8种iOS获取设备唯一标识的方法,希望对大家有用. UDID UDID(Unique Device Identifier),iOS 设备的唯一识别码,是一个40位十六进制序列(越狱的设备通过某些工具可以改变设备的 UDID),移动网络可以利用 UDID 来识别移动设备. 许多开发者把 UDID 跟用户的真实姓名.密码.住址.其它数据关联起来,网络窥探者会从多个应用收集这些数据,然后顺藤摸瓜得到这个人的许多隐私数据,同时大部分应用确实在频繁传输 UDID 和私人信息. 为了避免集体诉讼,苹果最终决

IOS获取设备唯一标识的八种方法

免责声明:本文章来源于其他博客整理 参考:http://www.2cto.com/kf/201308/237648.html 参考:http://www.2cto.com/kf/201311/255684.html 在iOS系统中,获取设备唯一标识的方法有很多: 一.UDID(Unique Device Identifier) UDID的全称是Unique Device Identifier,它就是苹果IOS设备的唯一识别码,它由40个字符的字母和数字组成(越狱的设备通过某些工具可以改变设备的U

iOS里面的屏幕适配(两种方法)

第一种方法:进行等比缩放 适用于只有单个或者很少的页面需要适配的时候 第二种方法:用别人已经封装的类,进行屏幕的适配 适用于多个页面都需要进行屏幕适配 这是在ViewController.m里面的代码

ios webview自适应实际内容高度4种方法

//第一种方法 - (void)webViewDidFinishLoad:(UIWebView *)webView { CGFloat webViewHeight=[webView.scrollView contentSize].height; CGRect newFrame = webView.frame; newFrame.size.height = webViewHeight; webView.frame = newFrame; _webTablewView.contentSize = C

iOS 清理缓存功能的实现第二种方法

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 /**  *  清理缓存第二种方法  *  *  @param sender <#sender description#>  */ - (void)clearCache:(id)sender {     //彻底清除