#import <Foundation/Foundation.h>//基础框架入口#import <CoreGraphics/CoreGraphics.h>//绘图入口#import <UIKit/UIView.h>//视图对象#import <UIKit/UIApplication.h>//提供iOS程序运行期的协作和控制#import <UIKit/UIKitDefines.h>//一些宏定义NS_ASSUME_NONNULL_BEGIN typedef CGFloat UIWindowLevel;//32位则为float | 64位为double/*UIEvent 触摸事件,运动事件UIScreen 屏幕处理NSUndoManager  记录撤销,修改操作的消息UIViewController 视图控制器*/@class UIEvent,UIScreen, NSUndoManager,UIViewController;NS_CLASS_AVAILABLE_IOS(2_0)@interface UIWindow :UIView@property(nonatomic,strong)UIScreen *screen; @property(nonatomic)UIWindowLevel windowLevel;            @property(nonatomic,readonly,getter=isKeyWindow) BOOL keyWindow;- (void)becomeKeyWindow;                               - (void)resignKeyWindow;                               - (void)makeKeyWindow;- (void)makeKeyAndVisible;                             @property(nullable,nonatomic,strong)UIViewController *rootViewController NS_AVAILABLE_IOS(4_0);  // default is nil/*事件拦截分发到指定视图对象当用户发起一个事件,比如触摸屏幕或者晃动设备,系统产生一个事件,同时投递给UIApplication,而UIApplication则将这个事件传递给特定UIWindow进行处理(正常情况都一个程序都只有一个UIWindow),然后由UIWindow将这个事件传递给特定的对象(即first responder)并通过响应链进行处理。虽然都是通过响应链对事件进行处理,但是触摸事件和运动事件在处理上有着明显的不同(主要体现在确定哪个对象才是他们的firstresponder):*/- (void)sendEvent:(UIEvent *)event; //窗口坐标系统转化- (CGPoint)convertPoint:(CGPoint)point toWindow:(nullableUIWindow *)window;//转化当前窗口一个坐标相对另外一个窗口的坐标- (CGPoint)convertPoint:(CGPoint)point fromWindow:(nullableUIWindow *)window;//转化另外窗口一个坐标相对于当前窗口的坐标- (CGRect)convertRect:(CGRect)rect toWindow:(nullableUIWindow *)window;//转化当前窗口一个矩形坐标相对另外一个窗口的坐标- (CGRect)convertRect:(CGRect)rect fromWindow:(nullableUIWindow *)window;//转化另外窗口一个矩形坐标相对于当前窗口的坐标@endUIKIT_EXTERN constUIWindowLevel UIWindowLevelNormal;//默认等级UIKIT_EXTERN constUIWindowLevel UIWindowLevelAlert;//UIAlert等级UIKIT_EXTERN constUIWindowLevel UIWindowLevelStatusBar;//状态栏等级UIKIT_EXTERN NSString *const UIWindowDidBecomeVisibleNotification;// nil 通知对象窗口为可见UIKIT_EXTERN NSString *const UIWindowDidBecomeHiddenNotification; // nil 通知对象窗口为隐藏UIKIT_EXTERN NSString *const UIWindowDidBecomeKeyNotification;    // nil 通知对象窗口为重要UIKIT_EXTERN NSString *const UIWindowDidResignKeyNotification;    // nil 通知对象窗口取消主窗//当键盘显示或消失时,系统会发送相关的通知:UIKIT_EXTERN NSString *const UIKeyboardWillShowNotification;//通知键盘对象视图即将加载UIKIT_EXTERN NSString *const UIKeyboardDidShowNotification;//通知键盘对象视图完全加载UIKIT_EXTERN NSString *const UIKeyboardWillHideNotification;//通知键盘对象视图即将隐藏UIKIT_EXTERN NSString *const UIKeyboardDidHideNotification;//通知键盘对象视图完全隐藏/*通知消息 NSNotification中的 userInfo字典中包含键盘的位置和大小信息,对应的key为UIKeyboardFrameBeginUserInfoKeyUIKeyboardFrameEndUserInfoKeyUIKeyboardAnimationDurationUserInfoKeyUIKeyboardAnimationCurveUserInfoKeyUIKeyboardFrameBeginUserInfoKey,UIKeyboardFrameEndUserInfoKey对应的Value是个NSValue对象,内部包含CGRect结构,分别为键盘起始时和终止时的位置信息。UIKeyboardAnimationCurveUserInfoKey对应的Value是NSNumber对象,内部为UIViewAnimationCurve类型的数据,表示键盘显示或消失的动画类型。UIKeyboardAnimationDurationUserInfoKey对应的Value也是NSNumber对象,内部为double类型的数据,表示键盘h显示或消失时动画的持续时间例如,在UIKeyboardWillShowNotification,UIKeyboardDidShowNotification通知中的userInfo内容为userInfo = {UIKeyboardAnimationCurveUserInfoKey = 0;UIKeyboardAnimationDurationUserInfoKey = "0.25";UIKeyboardBoundsUserInfoKey = "NSRect: {{0, 0}, {320, 216}}";UIKeyboardCenterBeginUserInfoKey = "NSPoint: {160, 588}";UIKeyboardCenterEndUserInfoKey = "NSPoint: {160, 372}";UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 480}, {320, 216}}";UIKeyboardFrameChangedByUserInteraction = 0;UIKeyboardFrameEndUserInfoKey = "NSRect: {{0, 264}, {320, 216}}";}在UIKeyboardWillHideNotification,UIKeyboardDidHideNotification通知中的userInfo内容为:userInfo = {UIKeyboardAnimationCurveUserInfoKey = 0;UIKeyboardAnimationDurationUserInfoKey = "0.25";UIKeyboardBoundsUserInfoKey = "NSRect: {{0, 0}, {320, 216}}";UIKeyboardCenterBeginUserInfoKey = "NSPoint: {160, 372}";UIKeyboardCenterEndUserInfoKey = "NSPoint: {160, 588}";UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 264}, {320, 216}}";UIKeyboardFrameChangedByUserInteraction = 0;UIKeyboardFrameEndUserInfoKey = "NSRect: {{0, 480}, {320, 216}}";}*/UIKIT_EXTERN NSString *const UIKeyboardFrameBeginUserInfoKey       NS_AVAILABLE_IOS(3_2);// NSValue of CGRectUIKIT_EXTERN NSString *const UIKeyboardFrameEndUserInfoKey         NS_AVAILABLE_IOS(3_2);// NSValue of CGRectUIKIT_EXTERN NSString *const UIKeyboardAnimationDurationUserInfoKeyNS_AVAILABLE_IOS(3_0);// NSNumber of doubleUIKIT_EXTERN NSString *const UIKeyboardAnimationCurveUserInfoKey   NS_AVAILABLE_IOS(3_0);// NSNumber of NSUInteger (UIViewAnimationCurve)UIKIT_EXTERN NSString *const UIKeyboardIsLocalUserInfoKey          NS_AVAILABLE_IOS(9_0);// NSNumber of BOOLUIKIT_EXTERN NSString *const UIKeyboardWillChangeFrameNotification NS_AVAILABLE_IOS(5_0);//键盘即将改变布局发出通知UIKIT_EXTERN NSString *const UIKeyboardDidChangeFrameNotification  NS_AVAILABLE_IOS(5_0);//键盘已经改变布局后发出通知UIKIT_EXTERN NSString *const UIKeyboardCenterBeginUserInfoKey  NS_DEPRECATED_IOS(2_0,3_2);UIKIT_EXTERN NSString *const UIKeyboardCenterEndUserInfoKey    NS_DEPRECATED_IOS(2_0,3_2);UIKIT_EXTERN NSString *const UIKeyboardBoundsUserInfoKey       NS_DEPRECATED_IOS(2_0,3_2);NS_ASSUME_NONNULL_END

UIWindow.h详解相关推荐

  1. free -h 详解

    1.命令 free -h 2.参数详解 total: 内存总数 used: 已经使用内存数 free: 完全空闲内存 shared: 多个进程共享的内存 buffers: 用于块设备数据缓冲,记录文件 ...

  2. C语言math.h详解

    math.h常用函数详解 1. 取绝对值 double fabs(double a); 对a取绝对值 2.取整与取余 int ceil (double a); 取上整(里面可以填整数也能填小数,整数返 ...

  3. windows.h 详解

    参考windows.h解构 刚开头的一段注释是对该头文件的描述: /*++ BUILD Version: 0001 Increment this if a change has global effe ...

  4. windows.h详解

    参考 http://blog.csdn.net/fengningning/article/details/2306650?locationNum=1&fps=1 windows.h解构 刚开头 ...

  5. C/C++—— #include“stdafx.h”详解

    转自:http://blog.csdn.net/qingkong8832/article/details/6695123 1,用VS2008新建项目,选择[Win32]-[Win32控制台应用程序]- ...

  6. CGGeometry.h详解

    本文转载至:http://blog.csdn.net/chengyingzhilian/article/details/7894195 这些是在CGGeometry.h里的 CGPoint.CGSiz ...

  7. MFC Afx*.h 详解

    Afx前缀是微软MFC一个bai小组的名称du简写,并没有别的意义. MFC的很dao多代码,zhuan包括全局函数名.宏.shu头文件名都使用了"Afx". Afx*.h是一组M ...

  8. c标准库头文件ctype.h详解

    最近实践了一些编程,越来越感觉库函数的重要性.掌握越来越多的函数才会站在巨人的肩膀上思考问题,而不是自己去写代码去实现函数,自己又能写几个函数呢-- ctype.h是C标准函数库中的头文件,定义了一批 ...

  9. 51单片机c语言编程的头文件,51单片机编程的头文件reg51.h详解

    我们在用c语言编程时往往第一行就是头文件,51单片机为reg51.h或reg52.h,51单片机相对来说比较简单,头文件里面内容不多,像飞思卡尔.ARM系列的单片机头文件往往内容就非常多,尽管如此,对 ...

最新文章

  1. 诗歌rails之如何写一个简单的Rails Plugin
  2. FAST选址与三维仿真模拟研究
  3. SQL:使用 CASE
  4. WinForm开发中针对TreeView控件改变当前选择节点的字体与颜色
  5. Java发邮件-QQ服务器认证
  6. 前端程序员最爱用的8款代码编辑器,你用哪款?
  7. left join on用法_MySQL 多表查询 quot;Joinquot;+“case when”语句总结
  8. java数字排序代码,进阶加薪全靠它!
  9. 20169210 2016-2017-2《网络攻防实践》第五周作业
  10. 一个文件版的名片管理系统(Python3)
  11. c语言暂存按键数据变量,ET6218R按键检测程序
  12. emui内核支持kvm吗_EMUI和MIUI为什么不基于安卓linux内核不使用虚拟机直接用c++开发一些更流畅系统自带软件呢?...
  13. coreseek笔记
  14. JUnit执行单元测试用例成功,mvn test却失败的问题和解决方法
  15. Linux安装RPM、YUM
  16. CPU是沙子做的,凭什么卖那么贵?
  17. 纯CSS3流光边框特效
  18. python 百度云不限速版_现在各位是怎么应对百度网盘限速的?
  19. dnf吸怪源码c语言,发DNF源码了
  20. 7-50 近似求PI (15分)

热门文章

  1. Linux 第21天: (09月14日) Linux自动化安装和SELinux
  2. powermill编程需注意的准则
  3. jquery利用雅虎YQL 做中间层进行跨域请求
  4. linux top cpu 软中断,linux诊断CPU软中断问题
  5. 数码相机中关于Auto/A/S/P/M档的使用
  6. DayDreamInGIS ArcGIS-AddIn 数据处理工具使用说明(裁剪工具/字段修改/要素合并/属性筛选/空间连接)
  7. pandas的引用与复制
  8. iPhone/iPad高级应用与手游开发学习笔记:多点触摸与手势检测(三:UIPinchGestureRecognizer和UIRotationGestureRecognizer)
  9. 再次携号转网_携号转网能“转”几次,间隔时间是多长,具体有哪些条件?望周知...
  10. 查看和终止 Oracle 连接会话以及正在执行的 SQL 语句