iOS键盘遮挡文本框的解决方案
来源:互联网 发布:mac怎么整理照片 编辑:程序博客网 时间:2024/06/10 09:40
在开发过程中我们经常会遇到虚拟键盘遮挡输入框的问题,本人也上网查了一些资料,发现有些兄弟给的解决方案是这样的,他不去管我当前的光标位置只是去把键盘上面的整个UIView向上推了键盘高度,这种方式虽然解决了虚拟键盘遮挡输入框的问题但是对用户不够友好,下面我介绍一种方法来解决该问题:
首先我们要定义一个 UITextField 类型的控件用来存储当前光标所在的 UITextField ,之后我们要监听两个键盘相关的通知 keyboardDidShow 和 keyboardWillBeHidden,直接上代码:
- (void)keyboardDidShow:(NSNotification *)notification { NSDictionary *info = [notification userInfo]; CGRect kbRect = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue]; kbRect = [self.view convertRect:kbRect fromView:nil]; UIEdgeInsets contentInsets = contentView.contentInset; contentInsets.bottom = kbRect.size.height; // UIEdgeInsetsMake(0.0, 0.0, kbRect.size.height, 0.0); contentView.contentInset = contentInsets; contentInsets = contentView.scrollIndicatorInsets; contentInsets.bottom = kbRect.size.height; contentView.scrollIndicatorInsets = contentInsets; CGRect aRect = self.view.frame; // CGRect aRect = tableView.frame; aRect.size.height -= kbRect.size.height; if (!CGRectContainsPoint(aRect, _activeField.frame.origin)) { [contentView scrollRectToVisible:_activeField.frame animated:YES]; } else { NSLog(@"not Contains"); }}上面的代码用来检测键盘是否需要移动和需要移动的距离,其中的 _activeField 就是我们用来存放光标所属的UItextField,存放的代码应该在 UITextField 的 beginediting的代理中实现的。。
- (void)keyboardWillBeHidden:(NSNotification *)notification { UIEdgeInsets contentInsets = contentView.contentInset; contentInsets.bottom = 0; // UIEdgeInsetsMake(0.0, 0.0, kbRect.size.height, 0.0); contentView.contentInset = contentInsets; contentInsets = contentView.scrollIndicatorInsets; contentInsets.bottom = 0; contentView.scrollIndicatorInsets = contentInsets; // UIEdgeInsets contentInsets = UIEdgeInsetsZero; // scrollView.contentInset = contentInsets; // scrollView.scrollIndicatorInsets = contentInsets; [_activeField resignFirstResponder];}
上述代码实现了退出第一响应者,并让虚拟键盘归位。。
0 0
- iOS键盘遮挡文本框的解决方案
- iOS 键盘遮挡文本框
- iOS键盘遮挡解决方案
- IOS 防止键盘遮挡文本框
- iOS 键盘遮挡文本框 解决办法
- 键盘遮挡文本框的问题
- iOS键盘遮挡解决方案--摘抄-
- IOS键盘遮挡住了文本框
- iOS 键盘显隐时上下移动页面--键盘遮挡文本框解决
- iOS 提示信息被键盘遮挡解决方案
- iOS 键盘遮挡输入框解决方案
- 移动端 ios 系统键盘遮挡解决方案
- iOS防止键盘的遮挡
- iOS---UITextField代理方法解决键盘遮挡文本框
- 解决文本框被键盘遮挡
- 键盘遮挡屏幕解决方案
- 关于手机端IOS系统微信中虚拟键盘遮挡input输入框问题的解决方案
- ios关于键盘遮挡的简单方法
- 了解软件成熟度(CMMI)
- 编程面试题在线训练平台:判断字符串是否没有重复字符
- 1021. 个位数统计 (15)
- 栈默认有多大
- 静态库与动态库的制作与使用
- iOS键盘遮挡文本框的解决方案
- 哈夫曼树与哈夫曼编码
- Linux串口工具minicom配置
- javascript基础之四(数组详解)
- JS播放声音 兼容所有浏览器
- IOS网络笔记--使用视频播放
- 面向对象第三次作业部分参考代码
- JDK7目录监视服务
- 无法打开物理文件xxx.mdf操作系统错误 5:“5(拒绝访问。)” (Microsoft SQL Server,错误: 5120)的解决方法