iOS-键盘监听YYKeyboardManager
如果键盘弹出覆盖了原有的试图,这种效果并不好,所以我们就要在键盘弹出的时候,监听键盘的位置来改变我们一些试图的位置,例如tableView列表等;在这里推荐一个大牛ibireme写的YYKeyboardManager,Git地址:https://github.com/ibireme/YYKeyboardManager;用CocoaPods导入:pod 'YYKeyboardManager' ,终端 pod install 就可以使用了。
开启键盘监听
头文件引用:#import "YYKeyboardManager.h"
[[YYKeyboardManager defaultManager] addObserver:self];
实现代理
<YYKeyboardObserver>
代理方法
- (void)keyboardChangedWithTransition:(YYKeyboardTransition)transition {
[UIView animateWithDuration:transition.animationDuration delay: options:transition.animationOption animations:^{
///用此方法获取键盘的rect
CGRect kbFrame = [[YYKeyboardManager defaultManager] convertRect:transition.toFrame toView:self.view];
///从新计算view的位置并赋值
CGRect textframe = _textField.frame;
textframe.size.width = kbFrame.size.width;
textframe.origin.y = kbFrame.origin.y - textframe.size.height;
_textField.frame = textframe;
} completion:^(BOOL finished) {
}];
}
移除监听
别忘了在释放处移除监听
- (void)dealloc {
[[YYKeyboardManager defaultManager] removeObserver:self];
}
最后附上一个原Git上项目的效果图:

iOS-键盘监听YYKeyboardManager的更多相关文章
- ios --键盘监听JYKeyBoardListener
没有前言,就是一个简单的键盘监听,自动调整输入框的位置不被键盘遮挡 .h // // JYKeyBoardListener.h // // Created by JianF.Sun on 17/9/2 ...
- iOS键盘监听事件
1.注册键盘通知事件 NSNotificationCenter *center = [NSNotificationCenter defaultCenter]; // 键盘将出现事件监听 [center ...
- iOS键盘监听的通知
#pragma mark - 键盘通知回调方法 // 监听键盘的通知 [[NSNotificationCenter defaultCenter] addObserver:self selector: ...
- js 获取当前焦点所在的元素、给元素和input控件添加键盘监听事件、添加页面级的键盘监听事件
页面级的键盘监听事件 document.onkeydown = function (event) { var e = event || window.event || arguments.callee ...
- 使用HTML+CSS,jQuery编写的简易计算器后续(添加了键盘监听)
之前发布了一款简易的计算器,今天做了一下修改,添加了键盘监听事件,不用再用鼠标点点点啦 JS代码: var yunSuan = 0;// 运算符号,0-无运算;1-加法;2-减法;3-乘法;4-除法 ...
- [置顶] java Gui 键盘监听事件
简单写一个java Gui键盘监听事件,实现的效果就是按下键盘控制台输出你按下的键.比如:按下A控制台就输出A 效果如图: 以下把实现的效果分为几个步骤: 1.新建一个窗体类继承窗体: 2.给这个窗体 ...
- java swing button和键盘监听冲突问题
原因: 点击button会让jframe失去焦点,然后键盘监听不起作用 解决: 让jframe重新获取焦点就行了 jf.setFocusable(true); // JFrame jf = new J ...
- JPanel添加键盘监听事件
因为在自己的游戏需求中谢了要用键盘控制飞机的移动,所以用到键盘监听事件,但是使用了JPanel之后添加了键盘监听事件,按相应的方向键飞机并没有反应.但是如果是为JFrame的内容面板加则会有反应. 为 ...
- C#全局键盘监听(Hook)
一.为什么需要全局键盘监听? 在某些情况下应用程序需要实现快捷键执行特定功能,例如大家熟知的QQ截图功能Ctrl+Alt+A快捷键,只要QQ程序在运行(无论是拥有焦点还是处于后台运行状态),都可以按下 ...
随机推荐
- 我的第三个网页制作:b、i、s、u、sub、sup标签的使用
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- JS数组中shift()和push(),unshift()和pop()操作方法使用
Javascript为数组专门提供了push和pop()方法,以便实现类似栈的行为.来看下面的例子: var colors=new Array(); //创建一个数组 var count= ...
- SQL强化(二) 在Oracle 中写代码
一 : 关于查询中的转换 -- 字符串转换 一 : decode 函数 转换 SELECT DECODE ( PROTYPE.PRO_TYPE_DATE, 'L', '长', 'm', '短', ' ...
- webzip怎么用 如何用webzip下载整个网站?
相信很多站长对webzip这款软件都并不感到陌生,它功能强大,能够完整下载网站的内容,或者你也可以选择自行设置下载的层数.文件类型.网页与媒体文件的定位等等.具体详情你可以在百度上去搜一下.由于web ...
- 谷歌扩展程序设置ajax请求允许跨域(极少人知道的解决方案)
前言: 跨域问题一直是个老生常谈的问题,在实际开发过程中,跨域的问题常常会让开发者非常的头疼. 常用的几种跨域解决方案: 1.代理 2.XHR2 HTML5中提供的XMLHTTPREQUEST Lev ...
- 利用神经网络算法的C#手写数字识别
欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 下载Demo - 2.77 MB (原始地址):handwritten_character_recognition.zip 下载源码 - 70. ...
- freemarker常用值格式化方法
freemarker常用的值格式化方法: 1.${price?string('0.00')} 对price进行格式化,小数点后不足2位用0补足. 比如:price=1 输出:1.00 2.${pric ...
- pulltorefresh 设置刷新文字提示颜色
xmlns:ptr="http://schemas.android.com/apk/res-auto" 赵泽民 2016/7/12 15:48:58 ptr:ptrHeaderS ...
- python-networkx学习(1)
介绍: networkx是python的一个库,它为图的数据结构提供算法.生成器以及画图工具.近日在使用ryu进行最短路径获取,可以通过该库来简化工作量.该库采用函数方式进行调用相应的api,其参数类 ...
- JavaScript算法实现排序
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...