NSApplication(mac appkit)

NSApplication 是一个管理应用的事件循环和所用资源的对象,每一个应用都用了一个NSApplication类型的对象去控制事件循环,监听和更新应用的各个窗口(windows)和菜单,将事件分配到恰当的对象(即他自己或者他的一个window),生成自动释放池,接收应用级别(app-level)事件的通知。NSApplication对象有一个delegate(一个你分配的对象),应用程序启动、终止、激活、隐藏、用户要打开文件等生命周期事件会在这个delegate里收到通知。通过设置委托,实施委托方法,您定制你的应用程序的行为,而无需创建NSApplication的子类。在你的应用程序的main()函数中,你可以通过调用shared类方法创建NSApplication实例。创建应用程序对象后,main()函数会加载应用程序的主nib文件,然后调用循环run()消息,开始应用程序对象的事件循环(event loop)。

void NSApplicationMain(intargc,char*argv[]) {
[NSApplication sharedApplication];
[NSBundle loadNibNamed:@"myMain" owner:NSApp];
[NSApp run];
}

shared 类方法初始化了显示环境,将程序链接到窗口服务和显示服务。NSApplication 对象持有所有该应用使用的NSWindow 对象,所以它可以检索到这个应用的任何一个NSView对象。

share 类方法还初始化了一个NSApp类型的全局变量(global),你可以用这个变量检索NSApplication实例。shared 方法只会使所有这些初始化一次,多次调用shared 方法,都是得到第一回初始化出来的NSApplication实例。

这个NSApplication实例扮演了非常重要的角色:它要从窗口服务捕获到用户事件,并将其分配到恰当的NSResponder对象那里。NSApp将事件转为一个NSEvent对象,然后将它传给对应的NSWindow对象。所有的键盘和鼠标事件直接被传送给与之对应的NSWindow对象。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,326评论 19 139
  • Class NSApplication 管理应用程序的主要事件循环和所有应用程序对象使用的资源对象; 概述: 每个...
    Natus_Vincere阅读 5,247评论 0 0
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,512评论 30 472
  • 今天上午,我怀着一颗渴望贡献的真挚心态向某个亲子群转发了两篇很正向的文章《真正的教育是这两个字》与《你对父母的态度...
    哈佛妈妈亲子园阅读 358评论 0 0
  • 1.今天早晨做了2015年的真题,得分还可以。谢谢,谢谢,谢谢! 2.女友将女儿带来一起过中秋了。谢谢,谢谢,谢谢...
    ZZY710910阅读 158评论 0 0

友情链接更多精彩内容