如何为基于 xib(而非基于故事板)的应用程序创建 NSWindowController?
How do you create a NSWindowController for a xib-based (not storyboard-based) app?
我有一个应用程序不是基于故事板,而是基于 xib 文件。 Main.xib 包含主应用程序 window。然而,它只是一个window。没有 NSWindowController。怎么加一个?
好的,明白了。您只需将一个新对象添加到场景中,将其 class 更改为您希望它使用的任何 NSWindowController
subclass,将 window 附加到其输出,然后设置用于保存 window 控制器本身的输出。我在 app delegate 上推荐。
我更进一步,将 window 更改为 not 在启动时显示,并且我从 App Delegate 中删除了 window (因为它现在有对 window 控制器的引用,因此 window 已经间接引用了)。这样我就可以在实际显示之前将 window 居中。
唯一需要注意的是,您不会获得 window 加载覆盖,因为 window 被传递给 VC,而不是由它加载,所以仅在设置 window 时才需要 运行 的任何代码,只需覆盖 window 变量并添加 didSet
部分。很有魅力!
不过,我可能会尝试更深入地研究,看看我是否可以更新 Window 控制器以正常加载 window,这样我就可以按设计获得这些事件。
我有一个应用程序不是基于故事板,而是基于 xib 文件。 Main.xib 包含主应用程序 window。然而,它只是一个window。没有 NSWindowController。怎么加一个?
好的,明白了。您只需将一个新对象添加到场景中,将其 class 更改为您希望它使用的任何 NSWindowController
subclass,将 window 附加到其输出,然后设置用于保存 window 控制器本身的输出。我在 app delegate 上推荐。
我更进一步,将 window 更改为 not 在启动时显示,并且我从 App Delegate 中删除了 window (因为它现在有对 window 控制器的引用,因此 window 已经间接引用了)。这样我就可以在实际显示之前将 window 居中。
唯一需要注意的是,您不会获得 window 加载覆盖,因为 window 被传递给 VC,而不是由它加载,所以仅在设置 window 时才需要 运行 的任何代码,只需覆盖 window 变量并添加 didSet
部分。很有魅力!
不过,我可能会尝试更深入地研究,看看我是否可以更新 Window 控制器以正常加载 window,这样我就可以按设计获得这些事件。