美文网首页
IOS计算弹出键盘的高度

IOS计算弹出键盘的高度

作者: DoubleMoonBird | 来源:发表于2017-08-12 15:23 被阅读0次

    通过通知监听键盘的弹出与消失,并在输入框和键盘之间添加一个灰色的view


    当键盘出现增加监听

    //增加监听,当键盘出现或改变时收出消息

    [[NSNotificationCenterdefaultCenter]addObserver:self

    selector:@selector(keyboardWillShow:)

    name:UIKeyboardWillShowNotification

    object:nil];

    当键退出时增加监听

    //增加监听,当键退出时收出消息

    [[NSNotificationCenterdefaultCenter]addObserver:self

    selector:@selector(keyboardWillHide:)

    name:UIKeyboardWillHideNotification

    object:nil];

    获取到键盘高度后添加一个View 并添加手势点击

    //当键盘出现或改变时调用

    - (void)keyboardWillShow:(NSNotification*)aNotification

    {

    //获取键盘的高度

    NSDictionary*userInfo = [aNotificationuserInfo];

    NSValue*aValue = [userInfoobjectForKey:UIKeyboardFrameEndUserInfoKey];

    CGRectkeyboardRect = [aValueCGRectValue];

    intheight = keyboardRect.size.height;

    grayBack= [[UIViewalloc]initWithFrame:CGRectMake(0,64, [UIScreenmainScreen].bounds.size.width,[UIScreenmainScreen].bounds.size.height-64-height)];

    grayBack.backgroundColor= [UIColorgrayColor];

    grayBack.alpha=0.3;

    [self.viewaddSubview:grayBack];

    UITapGestureRecognizer*tapGestureRecognizer = [[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(keyboardHide:)];

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

    tapGestureRecognizer.cancelsTouchesInView=NO;

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

    [self.viewaddGestureRecognizer:tapGestureRecognizer];

    }

    //当键退出时调用

    - (void)keyboardWillHide:(NSNotification*)aNotification{

    [grayBackremoveFromSuperview];

    }

    -(void)keyboardHide:(UITapGestureRecognizer*)tap{

    [_SearchTextFieldresignFirstResponder];

    }

    相关文章

      网友评论

          本文标题:IOS计算弹出键盘的高度

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