键盘管理
来源:互联网 发布:sqlplus执行sql文件 -c 编辑:程序博客网 时间:2024/05/22 04:03
第一:在.h文件中加几个全局变量
不要忘了加上两个宏定义
//键盘判断需要的变量 int first; BOOL isRecoveryKeyboard; int originY;第二:在viewDidLoad方法中加上键盘的监听
isRecoveryKeyboard=NO; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
第三:判断键盘是否挡住TextView
-(void)keyboardWillShow:(NSNotification *)notification{ if (self.textView.isFirstResponder) { int height = self.textView.frame.origin.y+ self.textView.frame.size.height+10; if (first==0) { originY=self.view.frame.origin.y; first=1; } height = IOS7_OR_LATER?height:height+20; if ((KEYBOARD_HIGHT+height)>=WINDOW_HIGHT) { isRecoveryKeyboard=YES; [UIView animateWithDuration:0.25 animations:^{ [self.view setFrame:CGRectMake(self.view.frame.origin.x, originY+(WINDOW_HIGHT-(KEYBOARD_HIGHT+height)), self.view.frame.size.width, self.view.frame.size.height)]; } completion:^(BOOL finished) { }]; [UIView commitAnimations]; } }}-(void)keyboardWillHide:(NSNotification *)notification{ first=0; if (!isRecoveryKeyboard) { return; } isRecoveryKeyboard=NO; [UIView animateWithDuration:0.25 animations:^{ [self.view setFrame:CGRectMake(self.view.frame.origin.x,originY, self.view.frame.size.width, self.view.frame.size.height)]; } completion:^(BOOL finished) { }]; [UIView commitAnimations];}
不要忘了加上两个宏定义
#define WINDOW_HIGHT [UIApplication sharedApplication].keyWindow.frame.size.height#define KEYBOARD_HIGHT [[[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size.height
- 键盘管理
- 键盘管理
- demo01_键盘管理
- 管理键盘的框架
- IQKeyboardManager键盘管理
- Android 输入法键盘管理
- IOS键盘管理和自定义键盘
- iOS中获取键盘高度手动管理键盘
- AS3类游戏中的键盘管理
- 管理android 键盘自动弹出 关闭
- Android 键盘和activity生命周期管理
- Android中软件键盘的管理
- 键盘
- 键盘
- 键盘
- 键盘
- 键盘
- 键盘
- GoAgent原理与实现(二):本地代理的C#试验
- HDU 4418 Time travel (概率,高斯消元)
- Word 2010如何从正文开始设置页码
- 【Android开发那点破事】打开APP加载页面实现
- Send 和 WSASend
- 键盘管理
- 给单选框赋值
- 设计模式:抽象工厂模式(4.2)C++版
- 获取网络数据中的数组显示成ListView的简单流程
- strtok
- 标准模板库(STL)学习探究之Multimap容器
- FTP文件上传下载删除_解决乱码.doc
- Java中的String思考。
- Word-break:break-word