代码之家  ›  专栏  ›  技术社区  ›  Rob

启动基于Cocoa文档的应用程序首先显示选择窗口

  •  7
  • Rob  · 技术社区  · 14 年前

    这似乎很容易,但我一定错过了什么。我有一个基于文档的应用程序。我还构建了一个新的XIB,它有一个可安装视图和三个按钮,我打算显示以前文件的列表。我希望在应用程序首次启动时显示这个XIB而不是文档窗口。一旦用户选择了一个旧文件或点击“新建”按钮,我就想进入文档窗口。这是很常见的,我见过经常使用。

    在尝试进行此工作时,我修改了project-info.plist文件,并将主NIB文件基名称从mydocument更改为选择的XIB名称。这会导致应用程序显示选择窗口而不是MyDocument窗口。到目前为止似乎没有问题。

    在我的选择窗口中,我已经为这个XIB设置了表视图、数组控制器和自定义窗口控制器。我已经将文件的所有者设置为新的窗口控制器,并将窗口控制器的窗口属性绑定到窗口,将窗口的委托属性绑定到文件的所有者以及“选择”、“取消”和“新建”按钮。没有什么与应用程序绑定。但奇怪的是,当我运行这个应用程序时,它似乎希望将这些控制器连接到具有错误的NSApplication(其他两个按钮相同):

    无法将action selectbutton:连接到类nsApplication的目标

    它还显示一个错误,即对于保存对我的数组引用的出口,nsApplication不符合键值。数组控制器、窗口和按钮不是绑定到NSApplication,而是绑定到新的窗口控制器。我本以为如果有什么问题的话,就不会提到应用程序,而是窗口控制器与控制器绑定在一起。

    有人知道这里发生了什么吗?这是因为我将“主NIB文件基名称”从“主菜单”更改为“选择”而导致的目标操作问题吗?如果我不想改变这个,那么我如何才能让可可允许我在显示文档窗口之前显示一个选择屏幕?

    非常感谢您的帮助。 抢劫

    1 回复  |  直到 12 年前
        1
  •  9
  •   Peter Hosey    14 年前

    init initWithWindowNibName: alloc

    applicationOpenUntitledFile: showWindow:

    applicationDidFinishLaunching: applicationShouldHandleReopen:hasVisibleWindows:

    addDocument: removeDocument: