首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSApp的keyWindow是什么时候创建的?

NSApp的keyWindow是什么时候创建的?
EN

Stack Overflow用户
提问于 2011-07-11 10:49:53
回答 1查看 881关注 0票数 3

keyWindow是何时创建的?

我以为NSWindow会在调用相应视图控制器的updateView方法之前创建(我调用该方法是为了响应awakeFromNib),但是如果我使用NSApp的keyWindow创建了一个警报表,它就不会正确显示。

但是,如果我在该视图上放置一个按钮,然后在用户单击该按钮时调出警报,则定义了keyWindow,并且警报正确显示(如预期的那样)。

我的应用程序委派几乎完全是空的。

我实际上并不想在启动时显示警报,但我确实想知道key窗口是什么时候设置的。:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-11 12:02:30

何时创建keyWindow?

-[NSApp keyWindow]指向当前作为关键窗口的现有窗口(例如,已经从nib文件加载的窗口),通常通过向其发送-makeKeyAndOrderFront:

当应用程序启动时,Cocoa:

对于nib文件的内容,

  1. 加载主nib,并根据nib文件中定义的连接实例化其objects;
  2. Displays;
    1. 向在启动时标记为可见的nib文件objects;
    2. Displays窗口(其子集)发送-awakeFromNib

Resource Programming Guide中所述。

如果nib文件包含单个窗口,则该窗口在显示时成为关键窗口,前提是它可以成为关键窗口,而这发生在发送-awakeFromNib之后。

此外,the documentation for -[NSApplication keyWindow]还指出:

如果应用程序的nib文件尚未完成加载,或者如果接收器未处于活动状态,则此方法可能返回nil

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6645310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档