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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:IOS Button简要说明
下一篇:java实现水仙花数

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年03月20日 19时02分15秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

android pm.java,java – AM / PM的Android DateFormat因设备而异 2019-04-21
oracle存储过程调用sql文件,oracle - 在SQL Developer中运行存储过程? 2021-06-24
oracle同时报604和12507,V$SES_OPTIMIZER_ENV 查不到刚修改的隐含参数, 2021-06-24
zblog的php更换域名,zblogphp更换域名后,原zblog里使用了固定域名,登录不进去怎么办... 2021-06-24
oracle dnfs 配置,Source of Oracle参数解析(dnfs_batch_size) - django-\/\/ i K | 2021-06-24
oracle所需的环境,转:面对一个全新的oracle环境,首先应该了解什么? 2021-06-24
linux 小数四则运行,shell四则运算(整数及浮点数)的方法介绍 2021-06-24
linux系统分区后进入紧急模式,Linux系统的救援模式应用详解 2019-04-21
linux配置匿名ftp服务器,在Linux环境中使用vsftpd搭建ftp实现匿名上传详细配置 2019-04-21
linux创建硬盘分区lvm,LVM创建及分区调整、更换LVM硬盘 2019-04-21
FreeBSD可以安装Linux软件吗,在Linux服务器上面通过网络安装FreeBSD 2019-04-21
.net core linux 桌面应用,C# dotnet core + AvaloniaUI 开发桌面软件,hello world 2019-04-21
linux tcp 113错误,linux系统报tcp_mark_head_lost错误的处理方法 2019-04-21
南昌工程学院c语言答案,南昌工程学院C语言程序设计基础课件第3讲运算符和表达式... 2019-04-21
python学画画_python学画画(下) 2019-04-21
云栖社区 mysql_【直播结束,已更新回放】PG、MySQL到底哪个好?云栖说这次请来五位专家撕了一下-阿里云开发者社区... 2019-04-21
老男孩mysql 百度云_英语语录:除了你,没人能掌控你的幸福 2019-04-21
mysql驱动多次执行问题_Laravel5.2队列驱动expire参数设置带来的重复执行问题 数据库驱动... 2019-04-21
mysql获取刚新增的数据库_如何取得刚插入数据库的数据的id mysql 2019-04-21
python将10到1递减_(Python)如何将3个递减列表合并成一个递减列表? 2019-04-21