ios 键盘高度改变通知
来源:互联网 发布:985自动化就业知乎 编辑:程序博客网 时间:2024/05/21 19:13
在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
转载自:http://blog.csdn.net/u010124617/article/details/9945677
0 0
- ios 键盘高度改变通知
- iOS获取键盘的高度(在键盘出现,改变和消失时通知改变)
- iOS输入框随着键盘高度改变
- iOS键盘中英文切换键盘高度获取通知方法
- iOS中改变键盘的高度 监听键盘
- 通知,获取键盘高度
- iOS -- textfield输入时键盘升起,改变view高度
- 利用通知监测键盘高度
- iOS开发监听键盘(添加键盘和隐藏键盘,改变视图中整体控件随着键盘的高度移动)
- iOS键盘通知
- 处理iOS键盘通知
- iOS-键盘通知
- iOS开发-键盘通知
- iOS键盘监察通知
- ios键盘高度
- ios 键盘高度
- ios 获取键盘高度
- ios自定义键盘高度
- POJ 1942 Paths on a Grid (水题)
- Session,Application,cookie的区别
- 搞清这几个答案在恋爱吧
- 组播发送和组播接收的源代码例子【转】
- 轻轻地一个吻,打动了他的心。
- ios 键盘高度改变通知
- 女生的痛,男生不懂。男生的痛,女生不懂
- 男女之间的暗号,看看吧,说不定你喜欢的人正暗恋着你。
- asp.net常用自定义类
- MATLAB学习笔记之二 图像的分类和显
- 一张图胜千言万语:创建图像的自然描述
- 关于typedef的用法总结
- 我们到底为什么而活?
- CloudStack安装三篇