iOS-UITextField收起键盘和拓展

本文介绍了iOS中UITextField收起键盘的多种方法,包括使用`resignFirstResponder`直接收起,通过代理方法实现多textField场景下的键盘管理,以及利用点击事件控制键盘显示与隐藏。对于只有一个textField的场景,点击textField外部收起键盘的方法尤其适用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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可以切换显示或隐藏键盘,也非常方便!

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值