keyWindow是何时创建的?
我以为NSWindow会在调用相应视图控制器的updateView方法之前创建(我调用该方法是为了响应awakeFromNib),但是如果我使用NSApp的keyWindow创建了一个警报表,它就不会正确显示。
但是,如果我在该视图上放置一个按钮,然后在用户单击该按钮时调出警报,则定义了keyWindow,并且警报正确显示(如预期的那样)。
我的应用程序委派几乎完全是空的。
我实际上并不想在启动时显示警报,但我确实想知道key窗口是什么时候设置的。:)
发布于 2011-07-11 12:02:30
何时创建keyWindow?
-[NSApp keyWindow]指向当前作为关键窗口的现有窗口(例如,已经从nib文件加载的窗口),通常通过向其发送-makeKeyAndOrderFront:。
当应用程序启动时,Cocoa:
对于nib文件的内容,
-awakeFromNib;如Resource Programming Guide中所述。
如果nib文件包含单个窗口,则该窗口在显示时成为关键窗口,前提是它可以成为关键窗口,而这发生在发送-awakeFromNib之后。
此外,the documentation for -[NSApplication keyWindow]还指出:
如果应用程序的nib文件尚未完成加载,或者如果接收器未处于活动状态,则此方法可能返回
nil。
https://stackoverflow.com/questions/6645310
复制相似问题