什么时候创建keyWindow?
我认为NSWindow会在调用相应的视图控制器的updateView方法之前创建(我调用它来响应awakeFromNib),但是如果我使用NSApp的keyWindow创建一个警告表,它就不能正确显示。
但是,如果我在该视图上放置一个按钮,然后在用户点击它时调出警告,则会定义keyWindow,并且警报会正确显示(如预期的那样)。
我的应用程序代表几乎完全是空的。
我实际上并不想在启动时显示警报,但我确实想知道何时设置了关键窗口。 :)
答案 0 :(得分:4)
什么时候创建keyWindow?
-[NSApp keyWindow]
指向现有窗口(例如,已从nib文件加载的窗口),该窗口当前是关键窗口,通常是通过发送-makeKeyAndOrderFront:
。
当应用程序启动时,Cocoa:
-awakeFromNib
发送到nib文件对象的(子集); 如果nib文件包含单个窗口,则该窗口在显示时会成为键,只要它可以成为关键窗口,并且 -awakeFromNib
发送后会发生。
此外,the documentation for -[NSApplication keyWindow]
声明:
如果应用程序的nib文件尚未完成加载或接收方未处于活动状态,则此方法可能会返回
nil
。