虚位以待(AD)
虚位以待(AD)
首页 > 软件编程 > IOS编程/Objective-C > 代码详解ios键盘收起问题

代码详解ios键盘收起问题
类别:IOS编程/Objective-C   作者:码皇   来源:互联网   点击:

本篇文章针对IOS开发时候的键盘收起问题做了详细分析和代码说明,有兴趣的朋友参考下吧。

在开发过程中,我们经常会用到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 ;
    }

您可能感兴趣的文章:

  • iOS项目开发键盘弹出遮挡输入框问题解决方案
  • iOS 防键盘遮挡的实例
  • 解决移动端 ios 系统键盘遮挡的问题
  • IOS NSNotification 键盘遮挡问题的解决办法
  • IOS数字键盘左下角添加完成按钮的实现方法
  • iOS中键盘 KeyBoard 上添加工具栏的方法
  • iOS中只让textField使用键盘通知的实例代码
  • IOS 键盘挡住输入框的问题解决办法
相关热词搜索: ios 键盘收起