0

在对工作应用程序进行一些“清理”后,主窗口将按照MainWindow.xib.

  • 我在 IB 中删除了 MainWindowViewController 对象。(在字体管理器下方)
  • MainWindow.xib 的自定义类设置为MainWindowViewController
  • 该表使用内容模式 - 基于视图
  • 两个必需的方法都包含在该实现文件中
  • 包含在头文件中
  • 表视图连接已建立File's Owner

编辑:完整的错误信息是否提供线索?为什么是 NSApplication?

*** Illegal NSTableView data source (<NSApplication: 0x100607ad0>).

我错过了什么?我应该检查什么来解决?

包含图像以帮助可视化。

MainWindow.xib 截图

编辑2:(新信息)

我从表视图中删除了data source&delegate连接,错误消失了。同一个 IB 设计的窗口打开一个空的表格视图。

4

1 回答 1

0

我的“项目”比文档涵盖的更复杂。如何将 Window Controller 添加到 Cocoa/Core Data 模板并使用此控制器并不容易。

最明显的症状是预期控制器中的代码没有被执行。存在 2 个必需的委托方法。awakeFromNib也没有被调用。

经过更多研究,似乎“缺失的链接”是(以前删除的)NSObject设置为自定义类MainWindowViewControllerMainWindowControllernib 文件中的。我仍在寻找为什么需要这样做,或者为什么连接到文件所有者没有建立连接。

一方面,我们可以将 File's Owner 设置为自定义类 (MainWindow)ViewController 或 (Main)WindowController 并将包含的视图连接到 File's Owner。这不像我预期的那样工作。

另一方面,(显然是正确的)我们可以将 NSObject 添加到 MainMenu.xib 文件,将其自定义类设置为 (MainWindow)ViewController 或 (Main)WindowController,然后将出口连接到该对象的子视图。在 IB 中添加这个对象的步骤是我能找到的将窗口连接到控制器的唯一方法。

于 2013-08-30T13:18:54.623 回答