Xcode如何决定首先显示哪个XIB

时间:2011-03-08 20:18:55

标签: cocoa macos xib

当我在Xcode中创建一个新的cocoa项目时,它会创建一个带有Window的MainMenu.xib文件。我想将窗口分成MainWindow.xib并将其显示为主窗口 - 我该怎么做?

如果我创建一个基于'文档'的应用程序 - 我看到两个xib(MainMenu.xib和MyDocument.xib),我注意到MyDocument.xib立即显示 - 但我不明白它的识别位置。似乎没有明确的代码,我不知道在哪里查看plist。

如果我创建一个新文档,如何将其作为启动应用程序时显示的主窗口?

2 个答案:

答案 0 :(得分:10)

<YourProjectName>-Info.plist中,您将找到关键的“主nib文件基本名称”,其中第一个xib的值通常为“MainMenu”。

您还可以找到“文档类型” - &gt; “项目0” - &gt; “Cocoa NSDocument Class”,其值为“MyDocument”。在“MyDocument”类中,有一个方法- (NSString *)windowNibName。这将返回要加载的第一个xib的名称。

答案 1 :(得分:3)

窗口管理是您的责任。不要依赖框架以任何顺序显示窗口,因为该顺序未定义。

首先,确保在Interface Builder中为您的窗口选中Visible at Launch复选框 。如果是,您将无法有效地控制窗口显示。它默认开启。

接下来,为要加载的每个窗口笔尖使用NSWindowController子类。然后,在主应用程序控制器中,您可以控制何时实例化NSWindowController个对象以及何时调用其-showWindow方法。

在您的示例中,您可能会在应用程序委托中的NSWindowController方法中为MainWindow.xib实例化‑applicationDidFinishLaunching: