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 关于键盘监听相关推荐

  1. iOS键盘监听以及获取键盘高度

    在文本输入时,界面会弹出键盘.有时,当文本输入框过低,被键盘遮挡,使用户无法看见输入框文本内容,这就使得用户体验过低. 所以需要我们对键盘进行监控并获取键盘高度,调节界面或文本框高度进行处理.如下图, ...

  2. vant 软键盘_移动端软键盘监听(弹出,收起),及影响定位布局的问题

    移动端软键盘监听(弹出,收起),及影响定位布局的问题 一:移动端软键盘监听(弹出,收起) 1.监听resize ( Android) var winHeight = $(window).height( ...

  3. java swing button和键盘监听冲突问题

    原因: 点击button会让jframe失去焦点,然后键盘监听不起作用 解决: 让jframe重新获取焦点就行了 jf.setFocusable(true); // JFrame jf = new J ...

  4. qmainwindow键盘监听

    class MyWidget(QtGui.QmainWindow):     keyPressed = QtCore.pyqtSignal() def keyPressEvent(self, even ...

  5. C#全局键盘监听(Hook)的使用(转载)

    一.为什么需要全局键盘监听? 在某些情况下应用程序需要实现快捷键执行特定功能,例如大家熟知的QQ截图功能Ctrl+Alt+A快捷键,只要QQ程序在运行(无论是拥有焦点还是处于后台运行状态),都可以按下 ...

  6. C#全局键盘监听(Hook)

    一.为什么需要全局键盘监听? 在某些情况下应用程序需要实现快捷键执行特定功能,例如大家熟知的QQ截图功能Ctrl+Alt+A快捷键,只要QQ程序在运行(无论是拥有焦点还是处于后台运行状态),都可以按下 ...

  7. java监听双按键_java 键盘监听 按一次键监听到两次

    publicgameWin()//构造方法{for(inti=0;i<10;i++){for(intj=0;j<18;j++){map[i][j]=0;}}for(inti=0;i pub ...

  8. java键盘监听keyadapter_JAVA 键盘监听当中,释放键盘并没有停止运动

    package plane; import java.awt.Graphics; import java.awt.Image; import java.awt.event.KeyAdapter; im ...

  9. AWT_addKeyListener键盘监听事件(Java)

    AWT_addKeyListener键盘监听事件(Java) package reflect; import java.awt.*; import java.awt.event.KeyAdapter; ...

  10. JavaGUI编程 -- 窗口监听事件和键盘监听事件(AWT)

    1. JavaGUI编程之窗口监听事件和键盘监听事件(AWT) 1.1 窗口监听事件: 示例代码: package GUI.TestWindow;import java.awt.*; import j ...

最新文章

  1. 数据统计之日分类商品访问量
  2. Car-eye-http-flv-module 实现nginx-rtmp-mudule HTTP方式的FLV直播功能
  3. 玩转SCVMM中的更新基线,实现虚拟平台基础服务器补丁自动更新
  4. 解决“The type initializer for‘Oracle.DataAccess.Client.OracleConnection‘ threw an exception ”异常
  5. Python之sklearn-pandas:sklearn-pandas库函数的简介、安装、使用方法之详细攻略
  6. 当实在受不了了,就开干吧!
  7. 如何快速提升 Go 程序性能?
  8. idea中常用快捷键
  9. 点击按钮弹出Outlook(新建邮件状态)
  10. AVOD、SVOD、TVOD、PVOD:揭秘视频点播商业模式
  11. 修改app的名字和图标
  12. 计算机病毒大多数具有自身复制的功能,《计算机基础》第五章练习题
  13. STM32-M3(野火)SD卡读写/移植znFAT文件访问系统
  14. 整理总结:深入浅出统计学——排列与组合
  15. 高高兴兴看视频,认认真真写程序
  16. 史上最全面试题(CSS)
  17. 带有功利性的做一件事 ?
  18. UIUC罗宇男:AI-assisted Scientific Discovery
  19. leecode刷题第五天
  20. 元气森林,真能在中国再造一个“可口可乐”吗?

热门文章

  1. 狼人杀游戏 数据库设计
  2. 在虚拟机上使用macvlan命令建虚拟网卡
  3. 用微软的云计算来远程管理自己的电脑
  4. java 爬取ajax,R语言爬虫系列4|AJAX与动态网页介绍
  5. 虚拟机安装(保姆级教程)
  6. python模拟手机app签到_python +adb控制手机自动化签到
  7. 【webpack】windows10 局部安装webpack,配置环境变量
  8. Bithumb Global AMA丨Cred加速实现开放金融-打造区块链上蚂蚁金服
  9. 东航手机值机选座推荐
  10. 408计算机考研后期规划-10月起