iOS 获取屏幕最上层window以及响应者
1. 通过UIApplication获取
UIWindow *window = [UIApplication sharedApplication].keyWindow;
或者
UIWindow *window = [[UIApplication sharedApplication].windows lastObject];
复制代码
2. 比较严谨的获取方法:
- (UIWindow *)lastWindow{NSArray *windows = [UIApplication sharedApplication].windows;for (UIWindow *window in [windows reverseObjectEnumerator]) {if ([window isKindOfClass:[UIWindow class]] && CGRectEqualToRect(window.bounds, [UIScreen mainScreen].bounds)) {return window;}}return [UIApplication sharedApplication].keyWindow;
}
复制代码
3. 查找响应者
// 新建一个UIView的类目,把这个方法放进去,以后就可以直接通过view.findResponderViewController来获取视图的控制器了。
- (UIViewController *)findResponderViewController{UIResponder *next = self.nextResponder;do {if ([next isKindOfClass:[UIViewController class]]) {return (UIViewController *)next;}next = next.nextResponder;} while (next != nil);return nil;
}
复制代码
附:我的博客地址
iOS 获取屏幕最上层window以及响应者相关推荐
- iOS 获取屏幕的属性和宽度
app尺寸,去掉状态栏 CGRect r = [ UIScreen mainScreen ].applicationFrame; r=0,20,320,460 屏幕尺寸 CGRect rx = [ U ...
- IOS获取屏幕分辨率
获取屏幕分辨率是个很有用的功能,尤其在一些游戏相关的开发中,图形的绘制与屏幕分辨率密不可分.得到当前屏幕的分辨率是必不可少的支持. 获取屏幕分辨率可以两步走 1.得到当前屏幕的尺寸: CGRect r ...
- iOS 获取屏幕尺寸
//屏幕尺寸 CGRect rect = [[UIScreen mainScreen] bounds];CGSize size = rect.size;CGFloat width = size.wid ...
- iOS 获取屏幕亮度和调整屏幕亮度的方法
//获取亮度 [UIScreen mainScreen].brightness;//调整亮度 [[UIScreen mainScreen] setBrightness:value];
- ios xcode真机调试获取屏幕截屏
ios xcode真机调试获取屏幕截屏 非常多时候我们须要在调试的过程中把手机屏幕截图发给其它人看,在android开发中我们能够非常方便的截图保存.而xcode开发ios的时候发现这个需求却如此困难 ...
- iOS获取最上层控制器
iOS获取最上层控制器 + (UIViewController *)uppermostController {UIViewController *resultController = [self ab ...
- ios ReplayKit RPScreenRecorder获取屏幕录制的每一帧数据startCaptureWithHandler
ios ReplayKit RPScreenRecorder获取屏幕录制的每一帧数据startCaptureWithHandler 获取帧数据接口: (void)startCaptureWithHan ...
- ios 获取控件高度
2019独角兽企业重金招聘Python工程师标准>>> 1.ios 获取控件相对屏幕的位置 需要获取的对象为view1,则该视图相对屏幕的位置可使用下面方法实现: UIWindow ...
- 函数语法:JS获取浏览器窗口大小 获取屏幕,浏览器,网页高度宽度(转载)...
网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:document.body.offsetWid ...
最新文章
- Machine Learning | (7) Scikit-learn的分类器算法-决策树(Decision Tree)
- Bio-protocol第一届生物实验短视频大赛集锦(三)——软件使用篇
- leetcode--Two Sum
- 【错误记录】IntelliJ IDEA 中右键点击源码目录选择 New 选项 没有创建 Java Class 选项 ( 将对应的源码目录标记为 Sources 选项 )
- java 按键框架,如何在java中更改框架?
- Git 2.19 对Diff、Branch和Grep等做了改进
- 配置phoenix连接hbase_使用 Phoenix-4.11.0连接 Hbase 集群 ,并使用 JDBC 查询测试
- linux查看进程调用接口,查看某个程序都调用哪些api函数
- 逻辑斯蒂回归与最大熵模型---最大熵模型
- 构建高性能ASP.NET站点 第七章 如何解决内存的问题(后篇)—托管资源优化—监常用优化措施...
- velocity(vm)模板引擎学习介绍及语法
- 全新Linux+Python高端运维班第一次作业
- Esp8266(4)
- steam快速换号工具易语言源码 附成品
- 在线MAC地址查询和在线随机生成MAC地址
- Java 小游戏(骑士大战魔王)
- 立志做中国市场TOP2,新华三云屏底气何来?
- C语言明显优于其它高级语言
- 快递单号中的派件时效该怎么查?
- python手机充值代码_不用框架,原生使用python做注册接口/登陆接口/充值接口的测试,做的数据/代码分离...
热门文章
- git 挽救忘记提交到哪个分支的代码
- C++ primer - - 第一部分
- 安装好android的adt以后重启eclipse,但是没有创建AVD的图标
- ie focus bug
- java窗口绘图_JAVA-窗口中绘制图形
- 如何解决 “ 段错误(吐核) ” ???
- 完美解决Flask-Migrate使用SQLite生成自动迁移脚本的Bug
- 基于Spring AOP的JDK动态代理和CGLIB代理
- iOS快速集成检查更新
- Office 2010 Multi-language Pack download