IOS解决键盘挡住UITextView的方法
发布日期:2021-11-21 04:40:52
浏览次数:19
分类:技术文章
本文共 1466 字,大约阅读时间需要 4 分钟。
想要解决这个问题,首先了解一些通知(notifications)
1.UIKeyboardWillShowNotification
当键盘准备显示的时候会发出这个通知,只要是可编辑的原件都有效
2.UIKeyboardDidShowNotification键盘完全显示后发出这个通知
3.UIKeyboardWillHideNotification键盘消失准备离开我们的视野的时候发出这个通知
4.UIKeyboardDidHideNotification键盘完全消失的时候发出这个通知
所以我们的办法就是需要知道键盘什么时候出现,在这个时刻我们再次定义我们的可编辑控件的大小,比如UITextView,UITextField等;
(PS:键盘通知里面包含有一个userInfo这个属性,该属性包含了键盘的尺寸,其中有一个UIKeyboardFrameEndUserInfoKey作为字典中的一个键值,指向的就是键盘完全显示的时候,键盘大小、尺寸)
NSValue *keyboardRectAsObject = [[paramNotification userInfo]objectForKey:UIKeyboardFrameEndUserInfoKey];通过上述代码获得显示完全的键盘属性
首先系统发出通知,我们做的就是监听通知,然后处理监听方法
-(void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(handleKeyboardDidShow:) name:UIKeyboardDidShowNotification object:Nil]; [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(hanleKeyboardWillHide:) name:UIKeyboardDidHideNotification object:nil];}其中@selector方法如下
-(void)handleKeyboardDidShow:(NSNotification*)paramNotification{ NSValue *keyboardRectAsObject = [[paramNotification userInfo]objectForKey:UIKeyboardFrameEndUserInfoKey]; CGRect rect; [keyboardRectAsObject getValue:&rect]; self.myTextView.contentInset = UIEdgeInsetsMake(0, 0, rect.size.height + 10, 0);}-(void)hanleKeyboardWillHide:(NSNotification*)paramNotification{ self.myTextView.contentInset = UIEdgeInsetsZero;}
好了,以上就是核心代码,祝大家编码愉快~~
(PS:原创文章,转载请标明出处)
转载地址:https://blog.csdn.net/xiaoji94shen/article/details/19485131 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年03月20日 19时02分15秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
oracle所需的环境,转:面对一个全新的oracle环境,首先应该了解什么?
2021-06-24
linux 小数四则运行,shell四则运算(整数及浮点数)的方法介绍
2021-06-24
linux系统分区后进入紧急模式,Linux系统的救援模式应用详解
2019-04-21
linux创建硬盘分区lvm,LVM创建及分区调整、更换LVM硬盘
2019-04-21
FreeBSD可以安装Linux软件吗,在Linux服务器上面通过网络安装FreeBSD
2019-04-21
南昌工程学院c语言答案,南昌工程学院C语言程序设计基础课件第3讲运算符和表达式...
2019-04-21
python学画画_python学画画(下)
2019-04-21
老男孩mysql 百度云_英语语录:除了你,没人能掌控你的幸福
2019-04-21
mysql获取刚新增的数据库_如何取得刚插入数据库的数据的id mysql
2019-04-21
python将10到1递减_(Python)如何将3个递减列表合并成一个递减列表?
2019-04-21