iOS开发 关于键盘高度
2013-08-13 12:04
323 查看
在iOS开发中,经常有需要根据弹出来的键盘不同高度,改变我们视图显示的需求,而键盘的高度并不是一定的(比如中文输了字和英文键盘)。
那么我们可以通过注册键盘通知,监听键盘的高度改变事件来完成。
这里我只给出最核心的部分代码。
首先是注册通知:
然后是实现相应的方法:
最后提醒一下,不要忘记在相应的地方(离开界面或者销毁此类时),取消注册的通知
那么我们可以通过注册键盘通知,监听键盘的高度改变事件来完成。
这里我只给出最核心的部分代码。
首先是注册通知:
//键盘高度改变的通知 [[NSNotificationCenter defaultCenter]addObserver:selfselector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; [[NSNotificationCenter defaultCenter]addObserver:selfselector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; // 键盘高度变化通知,ios5.0新增的 #ifdef __IPHONE_5_0 float version = [[[UIDevicecurrentDevice]systemVersion]floatValue]; if (version >=5.0) { [[NSNotificationCenter defaultCenter]addObserver:selfselector:@selector(keyboardWillShow:) name:UIKeyboardWillChangeFrameNotification object:nil]; } #endif
然后是实现相应的方法:
#pragma mark keyboardNotification -(void)keyboardWillShow:(NSNotification*)notification{ NSDictionary *userInfo = [notificationuserInfo]; // 获取键盘的属性 NSValue* aValue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey]; // 获取键盘的frame CGRect keyboardRect = [aValueCGRectValue]; // 获取动画时长 NSValue *animationDurationValue = [userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey]; NSTimeInterval animationDuration; [animationDurationValue getValue:&animationDuration]; // 下面就可以是你改变视图的操作 [self 改变视图的操作(键盘出现)]; } -(void)keyboardWillHide:(NSNotification*)notification{ NSDictionary* userInfo = [notificationuserInfo]; //获取动画时长 NSValue *animationDurationValue = [userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey]; NSTimeInterval animationDuration; [animationDurationValue getValue:&animationDuration]; // 下面是你改变视图的操作 [self 改变视图的操作(键盘消失)]; }
最后提醒一下,不要忘记在相应的地方(离开界面或者销毁此类时),取消注册的通知
[[NSNotificationCenter defaultCenter]removeObserver:self name:UIKeyboardWillShowNotification object:nil]; [[NSNotificationCenter defaultCenter]removeObserver:self name:UIKeyboardWillHideNotification object:nil]; #ifdef __IPHONE_5_0 float version = [[[UIDevice currentDevice] systemVersion] floatValue]; if (version >= 5.0) { [[NSNotificationCenter defaultCenter]removeObserver:self name:UIKeyboardWillChangeFrameNotification object:nil]; } #endif
相关文章推荐
- iOS开发所有iPhone型号中所有键盘类型的高度
- ios开发 监听键盘frame变化事件获取键盘高度( ios8&ios7 横竖屏旋转时需要注意的问题)
- iOS开发键盘高度的处理
- ios开发 动态获取中英文键盘高度
- iOS开发中的键盘高度变化处理
- iOS开发中的键盘高度变化处理
- iOS开发中的键盘高度变化处理
- iOS开发之监听键盘高度的变化
- IOS开发 如何获取搜狗输入法键盘高度
- iOS开发之监听键盘高度的变化
- IOS开发(21)关于UITextField的键盘遮挡问题
- 在开发IOS项目时计算键盘的高度
- iOS开发—获取系统键盘高度
- iOS开发中如何在键盘弹出时改变View的高度
- iOS开发中的键盘高度变化处理
- iOS动态获取键盘高度实现流畅的键盘输入框开发
- iOS开发之监听键盘高度的变化 分类: ios技术 2015-04-21 12:04 233人阅读 评论(0) 收藏
- iOS开发之监听键盘高度的变化
- IOS 开发如何获取键盘高度
- iOS开发之监听键盘高度的变化