几种常用的隐藏键盘的方法

作者: Mrxiaowang | 来源:发表于2016-09-28 09:58 被阅读308次

    话不多说,直接上代码:

    1、//点击空白处,键盘收回

    UIControl *co = [[UIControl alloc]initWithFrame:CGRectMake(0,64,ScreenWidth,ScreenHeight)];

    [co addTarget:self action:@selector(coClick) forControlEvents:UIControlEventTouchUpInside];

    [_tableView addSubview:co];

    [_tableView sendSubviewToBack:co];

    -(void)coClick{

    [self.view endEditing:YES];

    }

    2、通知监听键盘

    //监听键盘弹出

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];

    //监听键盘隐藏

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];

    //键盘显示监听方法

    - (void)keyboardWillShow:(NSNotification *)noti

    {

    if (IS_IPHONE_4_SCREEN || IS_IPHONE_5_SCREEN) {

    [UIView animateWithDuration:0.25 animations:^{

    self.view.transform = CGAffineTransformMakeTranslation(0, -100.0);

    } completion:^(BOOL finished) {

    }];

    }

    UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(keyboardHide:)];

    //设置成NO表示当前控件响应后会传播到其他控件上,默认为YES。

    tapGestureRecognizer.cancelsTouchesInView = NO;

    //将触摸事件添加到当前view

    [self.view addGestureRecognizer:tapGestureRecognizer];

    }

    //键盘隐藏监听方法

    - (void)keyboardWillHide:(NSNotification *)noti

    {

    if (IS_IPHONE_4_SCREEN || IS_IPHONE_5_SCREEN) {

    [UIView animateWithDuration:0.25 animations:^{

    self.view.transform = CGAffineTransformIdentity;

    } completion:^(BOOL finished) {

    }];

    }

    }

    3、textField 点击return按键,键盘收回(前提要遵守协议)

    - (BOOL)textFieldShouldReturn:(UITextField *)textField

    {

    //回收键盘,取消第一响应者

    [textField resignFirstResponder];

    [UIView animateWithDuration:0.25 animations:^{

    _tableView.frame = CGRectMake(0, 0, YJScreenWidth, YJScreenHeight);

    }];

    return YES;

    }

    4、textView点击return按键,键盘收回

    - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {

    if([text isEqualToString:@"\n"]) {

    [textView resignFirstResponder];

    return NO;

    }

    return YES;

    }

    手上没活,突然间想总结一下啦,希望对大家有所帮助。欢迎入群,一起探讨QQ群:333261719

    相关文章

      网友评论

      • panzhangbao:楼主,如果有手势存在的话,能解决手势键盘冲突吗?我发现不好解决这个问题,不知道楼主有没有好的建议或方法

      本文标题:几种常用的隐藏键盘的方法

      本文链接:https://www.haomeiwen.com/subject/mkuhyttx.html