获取系统键盘所在的View
来源:互联网 发布:稚优泉水母面膜知乎 编辑:程序博客网 时间:2024/06/05 19:59
实际开发过程中,会有自定义键盘的需求,比如,需要添加一个表情键盘。本文提供一种解决方法,思路就是通过获取系统键盘所在的view,然后自定义一个view覆盖在系统键盘view上,接下来的事情就非常简单了,就是在自定义的view里做任何自己想做的事情。
这个方法的关键在于获取系统键盘所在的view。要完成这个,需要监听UIKeyboardDidShowNotification这个系统通知(注意:如果在UIKeyboardWillShowNotification这个系统通知里处理是不会得到键盘所在view的)。代码如下:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil];
keyboardDidShow函数实现:
- (void)keyboardDidShow:(NSNotification *)notification{ UIView *keyboardView = [self getKeyboardView];}
关键函数getKeyboardView的实现,该函数返回键盘所在view:
- (UIView *)getKeyboardView{ UIView *result = nil; NSArray *windowsArray = [UIApplication sharedApplication].windows; for (UIView *tmpWindow in windowsArray) { NSArray *viewArray = [tmpWindow subviews]; for (UIView *tmpView in viewArray) { if ([[NSString stringWithUTF8String:object_getClassName(tmpView)] isEqualToString:@"UIPeripheralHostView"]) { result = tmpView; break; } } if (result != nil) { break; } } return result;}
下面的事情就简单了,只要自定义一个view,并调用上面得到的keyboardView的addSubView函数,即可将自定义view覆盖在键盘view之上。然后,做自己想做的事情吧。
0 0
- 获取系统键盘所在的View
- iOS - 获取系统键盘所在View
- 获取view所在的控制器
- 获取 view 所在的ViewController
- 获取当前view所在页面的viewController
- iOS-获取当前View所在的控制器
- 获取view所在的视图控制器
- iOS-获取当前View所在的控制器
- iOS-获取当前View所在的控制器
- 获取视图view所在的控制器
- 获取当前View所在的ViewController
- 如何根据View获取所在的Controller
- 获取系统路径所在的文件系统
- 如何获取视图view所在的控制器iOS
- 【iOS开发】获取当前view(视图)所在的Controller(控制器)
- swift获取View所在ViewController的控制器对象
- iOS开发之获取view所在的控制器
- 获取系统键盘的高度
- 关于cookie的一些小测试
- springmvc框架引入JqueryEasyUI失败
- 《深入理解mybatis原理(五)》 MyBatis缓存机制的设计与实现
- 小型文件浏览器
- 重构二叉树
- 获取系统键盘所在的View
- hbase中报错:java.io.IOException: Connection reset by peer at sun.nio.ch.FileDispatcher.read0(Native
- 强悍的 vim —— 插件管理
- html浏览器选择执行判断浏览器种类
- windows64bit 以管理员身份运行cmd命令
- linux 查看nginx 安装路径
- android touch事件传递与分发
- Scala学习笔记(3): 面向对象与容器
- Mirantis OpenStack Fuel—MOS本地源/bootstrap制作