经过一些清洁'在工作应用程序中,主窗口按照MainWindow.xib
中的设计显示。
MainWindowViewController
File's Owner
编辑:完整的错误消息是否提供了线索?为什么选择NSApplication?
*** Illegal NSTableView data source (<NSApplication: 0x100607ad0>).
我错过了什么?我应该检查什么来解决?
图片包含以帮助可视化。
编辑2 :(新信息)
我删除了data source
&amp;表视图中的delegate
连接和错误消失了。同样的IB设计窗口打开,带有一个空表视图。
答案 0 :(得分:0)
我的'项目'比文档涵盖的更复杂。如何将窗口控制器添加到Cocoa / Core Data模板并使用此控制器并不容易找到。
最明显的症状是目标控制器中的代码未被执行。存在2个必需的委托方法。 awakeFromNib
也未被调用。
经过更多研究后,似乎“缺失的链接”是(先前删除的)NSObject
设置为nib文件中的自定义类MainWindowViewController
或MainWindowController
。我仍在寻找为什么这需要或为什么连接到文件所有者不进行连接。
一方面,我们可以将File的Owner设置为自定义类(MainWindow)ViewController或(Main)WindowController,并将包含的视图连接到File的Owner。这不像我预期的那样有效。
另一方面,(显然是正确的)我们可以在MainMenu.xib文件中添加一个NSObject,将它的自定义类设置为(MainWindow)ViewController或(Main)WindowController,然后将outlet连接到该对象的子视图。在IB中添加此对象的步骤是我找到将窗口连接到控制器的唯一方法。