不从 MainMenu.xib 加载窗口,而是加载另一个窗口

Posted

技术标签:

【中文标题】不从 MainMenu.xib 加载窗口,而是加载另一个窗口【英文标题】:Not loading the window from the MainMenu.xib, instead load another window 【发布时间】:2013-04-15 09:17:23 【问题描述】:

这是我的第一个 Mac OS-X 应用程序,所以这可能是一个愚蠢的问题。 在我的应用中,基本上我有两个窗口,

    MainMenu.xib文件默认自带的主窗口 我用另一个 xib 文件创建了另一个 WindowController

我创建了一个连接到 MainMenu.xib 的 AppController 类,我在 AppController 类的 awakeFromNib 方法中尝试加载主窗口或自定义窗口,但加载主菜单每一次。有可能吗?

以前的方式我做不到,如果我需要使用自定义窗口,我会先创建主窗口并立即关闭它。 我试图通过 [[NSApplication sharedApplication]mainWindow]; 获取主窗口,然后将其关闭。但是没有成功。

我认为我对可可的窗口、视图和控制器还没有正确的理解。我正在关注 aaron hillegass 的 COCOA Programming for Mac OS X 一书。 请建议我一些其他教程,以便我可以清楚地理解这件事。

【问题讨论】:

Dint 得到你的问题。 当我创建 cocoa 应用程序时,它已经在 MainMenu.xib 文件中附带了一个窗口、菜单功能,我需要根据某些条件加载该窗口或另一个自定义窗口。不是两者。 所以当你建造的时候,你得到了两个窗户? 默认窗口每次都会启动,它有一个带有操作的按钮,用于加载自定义窗口。但我需要在没有按钮的情况下执行此操作,并且不启动主窗口。 所以基本上你不想启动主窗口。您还想通过单击菜单打开第二个窗口。我说的对吗? 【参考方案1】:

您需要取消选中“启动时可见”窗口

然后根据您的 BOOL 值,您需要显示窗口并使其成为 orderFront。

【讨论】:

以上是关于不从 MainMenu.xib 加载窗口,而是加载另一个窗口的主要内容,如果未能解决你的问题,请参考以下文章

可可无法连接动作

我们在哪里可以为 MainMenu.xib 编写 windowDidBecomeKey 方法

一个应用程序代表,两个窗口

界面生成器无法确定“mainmenu.xib”的类型

UIApplicationDelegate 与 NSApplicationDelegate、MainMenu.xib

如何在 Cocoa 应用程序中手动创建和附加 MainMenu.xib?