iOS 关于键盘监听
step—1:键盘的监听
1.一般在viewWillAppear:方法中添加监听事件
- (void)viewWillAppear:(BOOL)animated{
[superviewWillAppear:animated];
//增加监听,当键盘出现或改变时收出消息
[[NSNotificationCenterdefaultCenter] addObserver:selfselector:@selector(keyboardWillShow:)name:UIKeyboardWillShowNotificationobject:nil];
//增加监听,当键退出时收出消息
[[NSNotificationCenterdefaultCenter] addObserver:selfselector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotificationobject:nil];
}
//当键盘弹出时调用
- (void)keyboardWillShow:(NSNotification*)notification{
//获取键盘的高度
NSDictionary*userInfo = [notification userInfo];
NSValue*value = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];
CGRectkeyboardRect = [value CGRectValue];
CGFloatheight = keyboardRect.size.height;
//第一种 self.view 平移的属性
//self.view.transform=CGAffineTransformMakeTranslation(0,-height);
//第二种 self.view frame的属性
CGRectframe = self.view.frame;
frame.origin.y= -height;
self.view.frame= frame;
NSLog(@"键盘打开...%@",NSStringFromCGRect(self.view.frame));
}
//当退出退出时调用
- (void)keyboardWillHide:(NSNotification*)notification{
//获取键盘的高度
NSDictionary*userInfo = [notification userInfo];
NSValue*value = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];
CGRectkeyboardRect = [value CGRectValue];
CGFloatheight = keyboardRect.size.height;
//第一种 self.view 平移的属性
//self.view.transform=CGAffineTransformIdentity;
//self.view.transform=CGAffineTransformMakeTranslation(0,0);
//第二种 self.view frame的属性
CGRectframe = self.view.frame;
frame.origin.y= 0;
self.view.frame= frame;
NSLog(@"键盘关闭...%@",NSStringFromCGRect(self.view.frame));
}
2.一般在viewWillDisappear:或dealloc 方法中移除
- (void)viewWillDisappear:(BOOL)animated{
[superviewWillDisappear:animated];
//解除键盘出现通知
[[NSNotificationCenterdefaultCenter] removeObserver:selfname:UIKeyboardDidShowNotificationobject:nil];
//解除键盘隐藏通知
[[NSNotificationCenterdefaultCenter] removeObserver:selfname:UIKeyboardDidHideNotificationobject:nil];
}
- (void)dealloc{
//解除键盘出现通知
[[NSNotificationCenterdefaultCenter] removeObserver:selfname:UIKeyboardDidShowNotificationobject:nil];
//解除键盘隐藏通知
[[NSNotificationCenterdefaultCenter] removeObserver:selfname:UIKeyboardDidHideNotificationobject:nil];
}
Step—2:键盘的的种类
1>UIKeyboardTypeDefault:
2>UIKeyboardTypeASCIICapable:
3>UIKeyboardTypeNumbersAndPunctuation:
4>UIKeyboardTypeURL:
5>UIKeyboardTypeNumberPad:
6>UIKeyboardTypePhonePad:
7>UIKeyboardTypeNamePhonePad:
8>UIKeyboardTypeEmailAddress:
9>UIKeyboardTypeDecimalPad:
10>UIKeyboardTypeTwitter:
11>UIKeyboardTypeWebSearch:
12>UIKeyboardTypeAlphabet:
iOS 关于键盘监听相关推荐
- iOS键盘监听以及获取键盘高度
在文本输入时,界面会弹出键盘.有时,当文本输入框过低,被键盘遮挡,使用户无法看见输入框文本内容,这就使得用户体验过低. 所以需要我们对键盘进行监控并获取键盘高度,调节界面或文本框高度进行处理.如下图, ...
- vant 软键盘_移动端软键盘监听(弹出,收起),及影响定位布局的问题
移动端软键盘监听(弹出,收起),及影响定位布局的问题 一:移动端软键盘监听(弹出,收起) 1.监听resize ( Android) var winHeight = $(window).height( ...
- java swing button和键盘监听冲突问题
原因: 点击button会让jframe失去焦点,然后键盘监听不起作用 解决: 让jframe重新获取焦点就行了 jf.setFocusable(true); // JFrame jf = new J ...
- qmainwindow键盘监听
class MyWidget(QtGui.QmainWindow): keyPressed = QtCore.pyqtSignal() def keyPressEvent(self, even ...
- C#全局键盘监听(Hook)的使用(转载)
一.为什么需要全局键盘监听? 在某些情况下应用程序需要实现快捷键执行特定功能,例如大家熟知的QQ截图功能Ctrl+Alt+A快捷键,只要QQ程序在运行(无论是拥有焦点还是处于后台运行状态),都可以按下 ...
- C#全局键盘监听(Hook)
一.为什么需要全局键盘监听? 在某些情况下应用程序需要实现快捷键执行特定功能,例如大家熟知的QQ截图功能Ctrl+Alt+A快捷键,只要QQ程序在运行(无论是拥有焦点还是处于后台运行状态),都可以按下 ...
- java监听双按键_java 键盘监听 按一次键监听到两次
publicgameWin()//构造方法{for(inti=0;i<10;i++){for(intj=0;j<18;j++){map[i][j]=0;}}for(inti=0;i pub ...
- java键盘监听keyadapter_JAVA 键盘监听当中,释放键盘并没有停止运动
package plane; import java.awt.Graphics; import java.awt.Image; import java.awt.event.KeyAdapter; im ...
- AWT_addKeyListener键盘监听事件(Java)
AWT_addKeyListener键盘监听事件(Java) package reflect; import java.awt.*; import java.awt.event.KeyAdapter; ...
- JavaGUI编程 -- 窗口监听事件和键盘监听事件(AWT)
1. JavaGUI编程之窗口监听事件和键盘监听事件(AWT) 1.1 窗口监听事件: 示例代码: package GUI.TestWindow;import java.awt.*; import j ...
最新文章
- 数据统计之日分类商品访问量
- Car-eye-http-flv-module 实现nginx-rtmp-mudule HTTP方式的FLV直播功能
- 玩转SCVMM中的更新基线,实现虚拟平台基础服务器补丁自动更新
- 解决“The type initializer for‘Oracle.DataAccess.Client.OracleConnection‘ threw an exception ”异常
- Python之sklearn-pandas:sklearn-pandas库函数的简介、安装、使用方法之详细攻略
- 当实在受不了了,就开干吧!
- 如何快速提升 Go 程序性能?
- idea中常用快捷键
- 点击按钮弹出Outlook(新建邮件状态)
- AVOD、SVOD、TVOD、PVOD:揭秘视频点播商业模式
- 修改app的名字和图标
- 计算机病毒大多数具有自身复制的功能,《计算机基础》第五章练习题
- STM32-M3(野火)SD卡读写/移植znFAT文件访问系统
- 整理总结:深入浅出统计学——排列与组合
- 高高兴兴看视频,认认真真写程序
- 史上最全面试题(CSS)
- 带有功利性的做一件事 ?
- UIUC罗宇男:AI-assisted Scientific Discovery
- leecode刷题第五天
- 元气森林,真能在中国再造一个“可口可乐”吗?