gpt4 book ai didi

cocoa - NSApp的keyWindow是什么时候创建的?

转载 作者:行者123 更新时间:2023-12-03 16:18:59 26 4
gpt4 key购买 nike

keyWindow什么时候创建?

我认为 NSWindow 会在调用相应 View Controller 的 updateView 方法之前创建(我调用该方法是为了响应 awakeFromNib),但是如果我使用 NSApp 的 keyWindow 创建警报表,它不会正确显示。

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

我的应用程序委托(delegate)几乎完全是空的。

我实际上不想在启动时显示警报,但我确实想知道关键窗口何时设置。 :)

最佳答案

When does the keyWindow get created?

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

当应用程序启动时,Cocoa:

  1. 加载主 nib 文件;
  2. 解压 nib 文件的内容并实例化其对象;
  3. 重新建立 nib 文件中定义的连接;
  4. 发送 -awakeFromNib 到 nib 文件对象(的子集);
  5. 显示已标记为启动时可见的窗口;

Resource Programming Guide 中所述.

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

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

This method might return nil if the application’s nib file hasn’t finished loading yet or if the receiver is not active.

关于cocoa - NSApp的keyWindow是什么时候创建的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6645310/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com