iOS添加键盘弹出监听事件 更新键盘弹出状态栏变白色的问题
iOS添加键盘弹出监听事件
2017.07.17 09:19* 字数 72 阅读 7465评论 0喜欢 0
当键盘弹出时,页面控件需要重新布局,需要获取键盘的高度,添加键盘监听事件
1.在viewDidLoad中添加键盘监听
// 键盘出现的通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWasShown:) name:UIKeyboardDidShowNotification object:nil];
// 键盘消失的通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillBeHiden:) name:UIKeyboardWillHideNotification object:nil];
2.键盘监听方法
#pragma mark -键盘监听方法
- (void)keyboardWasShown:(NSNotification *)notification
{
// 获取键盘的高度
CGRect frame = [[[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
CGFloat height = kViewHeight - 64 - frame.size.height;
if (height < 455.5) {
self.textFiledScrollView.frame = CGRectMake(0, 64, kViewWidth, height);
}
if (![self.titleTextView.text isEqualToString:@""]) {
self.titleTextView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);
} else {
self.titleTextView.contentInset = UIEdgeInsetsMake(20, 0, -20, 0);// 光标偏移
}
[self contentSizeToFit];// 垂直居中
}
- (void)keyboardWillBeHiden:(NSNotification *)notification
{
self.textFiledScrollView.frame = CGRectMake(0, 64, kViewWidth, 455.5);
}
3.注意要在dealloc中,需要移除
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardDidShowNotification object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil];
}
代码仅供参考。
更新键盘弹出状态栏变白色的问题
#pragma mark -键盘监听方法
- (void)keyboardWasShown:(NSNotification *)notification{
[self setNeedsStatusBarAppearanceUpdate];
}
- (void)keyboardWillBeHiden:(NSNotification *)notification{
[self setNeedsStatusBarAppearanceUpdate];
}
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- PyQt5 技术篇-调用颜色对话框(QColorDialog)获取颜色,调色板的调用。
- Kafka的安装与配置
- PyQt5 技术篇-如何彻底删除控件?布局移除控件方法。
- PyQt5 技术篇-设置滚动条拉动位置,scrollArea滚动条位置设置方法。
- CentOS8更换yum源后出现同步仓库缓存失败的问题
- log4j配置方式
- 基于MHA搭建MySQL Replication集群高可用架构
- PyQt5 技巧篇-解决相对路径无法加载图片问题,styleSheet通过"相对"路径加载图片,python获取当前运行文件的绝对路径。
- 基于MMM搭建MySQL Replication集群高可用架构
- Python 技术篇-按任意格式灵活获取日期、时间、年月日、时分秒。日期格式化。
- 当删库时如何避免跑路
- Python 句法错误:"SyntaxError: invalid character in identifier",原因及解决方法
- Python3 多线程问题:ModuleNotFoundError: No module named 'thread',原因及解决办法。
- 文件传输和秒传
- 关于数据库的各种备份与还原姿势详解