关闭

iOS-UITextField收起键盘和拓展

标签: iOSobjective-cuikit
348人阅读 评论(0) 收藏 举报
分类:

UITextFiled也挺常用的,用于输入文本,一般用于登录界面,输入账号密码,验证码等。让我们来看下这个玩意的基本属性.
基本属性
这些属性都是个取所求,也比较简单,大家可以自己尝试下。

UITextField的收起键盘的方法

打开键盘是 [_testTextField becomeFirstResponder];
收起键盘是 [_testTextField resignFirstResponder];

1.用代理方法收起键盘的好处有两点:
1).当当前页面有多个textField时,只要设置同一个代理,就可以收起键盘。
2).代码简单明了,只需按键盘上的return就可以收回

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];//收起键盘
    return YES;
}// called when 'return' key pressed. return NO to ignore.该方法在键盘输入return时调用

2.点击textField之外的区域收起键盘

这个方法也比较常用,很多APP都是采用这种方式,如微信,qq,因为聊天时输入框就一个,因此用这种方式收回键盘非常方便。

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {//触摸事件中的触摸结束时会调用
    if (![_testTextField isExclusiveTouch]) {//判断点击是否在textfield和键盘以外
        [_testTextField resignFirstResponder];//收起键盘
    }
}

个人感觉这个方法适合当前视图中只有一个textfield,如果有多个,那判断条件会有点复杂,不如用代理。

3.用控制事件点击UITextField内部收起键盘

UITextField的父类是UIControl,既然是这类,就可以添加事件。

    [_testTextField addTarget:self action:@selector(tapAction) forControlEvents:UIControlEventTouchDown];//添加点击事件,- -,这里我试了下touchupinside并不可以,touchdown的效果更好一些

- (void)tapAction {//事件点击动作
    [_testTextField resignFirstResponder];
}

这个方法乍一看好像会永远弹不出键盘,因为点击就是收起,但是事实呢,并不会,点击TextField可以切换显示或隐藏键盘,也非常方便!

希望这几种收起键盘的方式对大家有帮助,谢谢!

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:4071次
    • 积分:99
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    文章分类
    文章存档
    最新评论