动态计算iOS键盘高度

时间:2021-09-26 00:32:47

当有一个UITextField需要输入内容的时候,需要保证键盘不会遮挡UITextField。iOS下默认的英文键盘高度为216,当使用中文输入法的时候键盘高度会改变,这时候就需要动态的计算键盘的高度。

1.添加通知 监听键盘(注意通知的名字);

[[NSNotificationCenterdefaultCenter]addObserver:self

                                            selector:@selector(keyboardWillShown:)

                                                name:UIKeyboardDidShowNotification

                                              object:nil];

2.实现需要执行的方法

-(void)keyboardWasShown:(NSNotification *)notif

{

    NSDictionary *userInfo = [notif userInfo];

    NSValue *value = [userInfoobjectForKey:UIKeyboardFrameEndUserInfoKey];

    CGRect rect = [value CGRectValue];

    int height = rect.size.height; //键盘高度

  //改变控件的frame    

}

当切换输入法或者键盘弹出的时候都会发送通知,可以动态的获得键盘的高度。