ios 获取键盘高度

来源:互联网 发布:吉林农业大学知乎 编辑:程序博客网 时间:2024/05/16 06:28

1.注册键盘变化监听事件

监听键盘将要弹出

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

监听键盘将要隐藏

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

2.实现监听事件,根据键盘变化做出响应的动画

- (void) keyboardWasShown:(NSNotification *)notification

{

    NSDictionary *info = [notification userInfo];

    NSValue *value = [info objectForKey:UIKeyboardFrameBeginUserInfoKey];

    CGSize keyboardSize = [value CGRectValue].size; //获取得到键盘开始动画时候的尺寸


    NSValue *endValue = [info objectForKey:UIKeyboardFrameEndUserInfoKey];

    CGSize keyboardEndSize = [endValue CGRectValue].size; //获取得到键盘动画结束时候的尺寸,可以根据尺寸的变化动态调整输入框的位置


}

- (void) keyboardWasHidden:(NSNotification *) notification

{

    NSDictionary *info = [notification userInfo];

    NSValue *value = [info objectForKey:UIKeyboardFrameBeginUserInfoKey];

    CGSize keyboardSize = [value CGRectValue].size;   

}




UIKIT_EXTERN NSString *const UIWindowDidBecomeVisibleNotification;// window可见时候的事件

UIKIT_EXTERN NSString *const UIWindowDidBecomeHiddenNotification; // wido隐藏时候的事件

UIKIT_EXTERN NSString *const UIWindowDidBecomeKeyNotification;    // 键盘可见响应事件

UIKIT_EXTERN NSString *const UIWindowDidResignKeyNotification;    // 键盘隐藏响应事件


// Each notification includes a nil object and a userInfo dictionary containing the

// begining and ending keyboard frame in screen coordinates. Use the various UIView and

// UIWindow convertRect facilities to get the frame in the desired coordinate system.

// Animation key/value pairs are only available for the "will" family of notification.

UIKIT_EXTERN NSString *const UIKeyboardWillShowNotification;

UIKIT_EXTERN NSString *const UIKeyboardDidShowNotification; 

UIKIT_EXTERN NSString *const UIKeyboardWillHideNotification; 

UIKIT_EXTERN NSString *const UIKeyboardDidHideNotification;


UIKIT_EXTERN NSString *const UIKeyboardFrameBeginUserInfoKey     //获取键盘动画开始时的CGRect

UIKIT_EXTERN NSString *const UIKeyboardFrameEndUserInfoKey     //获取键盘动画结束时的CGRect

UIKIT_EXTERN NSString *const UIKeyboardAnimationDurationUserInfoKey //获取键盘动画的时间

UIKIT_EXTERN NSString *const UIKeyboardAnimationCurveUserInfoKey    


// Like the standard keyboard notifications above, these additional notifications include

// a nil object and begin/end frames of the keyboard in screen coordinates in the userInfo dictionary.

UIKIT_EXTERN NSString *const UIKeyboardWillChangeFrameNotification  

UIKIT_EXTERN NSString *const UIKeyboardDidChangeFrameNotification  


// These keys are superseded by UIKeyboardFrameBeginUserInfoKey and UIKeyboardFrameEndUserInfoKey.

UIKIT_EXTERN NSString *const UIKeyboardCenterBeginUserInfoKey  

UIKIT_EXTERN NSString *const UIKeyboardCenterEndUserInfoKey     

UIKIT_EXTERN NSString *const UIKeyboardBoundsUserInfoKey       

0 0