这似乎应该很容易,但我必须遗漏一些东西。我有一个基于文档的应用程序。我还构建了一个新的 XIB,它有一个 NSTableView 和三个按钮,我打算显示以前文件的列表。我希望在应用程序首次启动时显示此 XIB 而不是文档窗口。一旦用户选择了一个旧文件或点击“新建”按钮,我希望然后转到文档窗口。这是很常见的,我经常看到使用。
在我试图让这个工作的过程中,我修改了 project-info.plist 文件并将主 NIB 文件基本名称从 MyDocument 更改为我的选择 XIB 名称。这会导致应用程序显示选择窗口而不是 MyDocument 窗口。到目前为止,似乎没有任何问题。
在我的选择窗口中,我为这个 XIB 设置了我的表格视图和一个数组控制器和一个自定义窗口控制器。我已将文件的所有者设置为新的窗口控制器,并将窗口控制器的窗口属性绑定到窗口,将窗口的委托属性绑定到文件的所有者以及“选择”、“取消”和“新建”按钮。没有任何东西与 NSApplication 绑定。但奇怪的是,当我运行这个应用程序时,它似乎想将这些控制器连接到 NSApplication 并出现错误(其他两个按钮相同):
无法将动作 selectButton: 连接到 NSApplication 类的目标
它还显示一个错误,即 NSApplication 对于持有对我的数组的引用的插座不符合键值对。Array Controller、Window 和按钮没有绑定到 NSApplication,而是绑定到新的 Window Controller。我本来希望如果有任何问题不会提到 NSApplication 而是控制器绑定到的窗口控制器。
有人知道这里发生了什么吗?这是一个目标操作问题,因为我将“主 NIB 文件基本名称”从“主菜单”更改为“选择”吗?如果我不应该更改它,那么如何让 Cocoa 允许我在显示文档窗口之前显示一个选择屏幕?
任何帮助是极大的赞赏。抢