时间:2021-05-19
在开发过程中,我们经常会用到UITextField、UITextView等文本框,然后这些文本框在点击之后会自动成为第一响应者(FirstResponder),并自动弹出软键盘。然而,没有自动定义好的软键盘的回收。今天,我在开发过程中就遇到了这个问题,首先,软键盘收起会发生在两种情况下,一是当前区域为非第一响应者,二是当前区域的输入结束。具体解决方案有两种:
1、在当前页面设置点击事件,当点击事件发生时,注销当前视图的第一响应者或者设置当前摄入结束。当点击事件发生在非选中区域时,则键盘会自动回收:
//在viewDidLoad中 添加点击手势,为了关闭键盘的操作UITapGestureRecognizer *tap1 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewTapped:)];tap1.cancelsTouchesInView = NO;[self.view addGestureRecognizer:tap1];//点击空白处的手势要实现的方法,设置当前输入结束-(void)viewTapped:(UITapGestureRecognizer*)tap1{ [self.view endEditing:YES]; }这种方法对于视图上的任何UITextField、UITextView等文本框都有效,不需要对每一个UITextField、UITextView等文本框进行进行设置。
2、利用键盘上的 回车键 来进行设置当前UITextField、UITextView等文本框不是第一响应者,这种方法对UITextField、UITextView的应用不一样,需要区别进行。
对于UITextField,相应的UITextFieldDelegate有相关的处理
//设置回车键的类型和代理self.themeTextField.returnKeyType = UIReturnKeyDone;self.themeTextField.delegate = self ;#pragma mark - textField delegate- (BOOL)textFieldShouldReturn:(UITextField *)textField { [textField resignFirstResponder]; //[self.view endEditing:YES]; return YES;}对于UITextView,相应的UITextViewDelegate并没有相应的处理回车键的方法。但是,我们可以根据UITextViewDelegate提供的方法对键盘输入的值进行判断,如果为回车键(\n)则设置当前UITextView不是第一响应者,否则不操作。
//设置回车键的类型和代理,当前类是继承自UITextView的一个类 self.delegate = self ; self.returnKeyType = UIReturnKeyDone ;//UITextViewDelegate代理,当键盘输入变化时调用,可以通过该方法判断输入的内容- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{ //判断是否是回车键 if ([text isEqualToString:@"\n"]) { [textView resignFirstResponder]; return NO; } return YES ;}声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
IOSTextFiled与TextView键盘的收起以及处理键盘遮挡在iOS开发中,UITextFiled和UITextView是很常见的两个控件,当我们设置好
iOS开发之-关闭键盘退出键盘的5种方式1、点击编辑区以外的地方(UIView)2、点击编辑区域以外的地方(UIControl)3、使用制作收起键盘的按钮4、使
前言:微信H5项目,ios端出现了软键盘输完隐藏后页面不会回弹,下方会有一大块留白最近微信和ios都有版本升级,不知道是哪边升级造成的,但是经过测试,软键盘收起
整理文档,搜刮出一个ios中cell的section展开和收起的示例代码,稍微整理精简一下做下分享。首先,先上图,让大家看看效果相信大家对于tableviewd
IOS改变键盘颜色的代码iPhone和iPodtouch的键盘颜色其实是可以通过代码更改的,这样能更匹配App的界面风格,下面是改变iPhone键盘颜色的代码。