0

我有一个 NSTableView,我正在尝试设置自动保存以保留列大小和排序。

在属性检查器中,我在“表格视图”下的“自动保存”字段中输入了一个值,并检查了“列信息”。

当我构建并运行应用程序时,我收到一个错误:

Column identifiers used with NSTableView autosave feature must conform to NSCoding protocol: (null)

我是 Cocoa/Objective-C 的新手,所以我不清楚如何定义列标识符?

更新:我没有为标识符输入任何值,它被列为“自动”。但是,如果我在表列的标识符中输入一个字符串值,我仍然会得到相同的结果

更新二:手动输入值后,清理和重建似乎可以修复它。但是为什么自动标识符不起作用呢?

4

3 回答 3

1

手动输入值后,清理和重建似乎可以修复它。但是为什么自动标识符不起作用呢?

Interface Builder 有时在接受输入方面很不稳定。他们做了很多重新工作,将 IB 直接集成到 Xcode 4 中,这增加了许多奇怪的错误。

随着单点版本的发布,Apple 在 Xcode 4 中稳定 IB 方面做得不错。所需的清洁/重建量比以前少得多。

于 2013-02-12T20:35:54.250 回答
0

在我确定每列都有一个标识符之前,我遇到了这个问题。然后它起作用了。

于 2015-06-03T00:59:37.627 回答
0

关于这个问题的答案都没有真正令人满意地回答这个问题。是的,您需要为每个NSTableColumn;设置一个标识符值。“自动”标识符显然不起作用(从 Xcode 7.2 开始)。但是你在哪里设置这些?该标识符不在 IB 窗格中的 Value Inspector 中,您可能希望它在其中(我在那里寻找它,然后做了一些令人头疼的事情)。相反,它位于 IB 窗格中的 Identity Inspector 上,它看起来像一份小报纸。我想identifier这可能是所有 nib 对象的一般属性(?),但我不记得以前需要将它用于其他任何事情,所以我从未注意到它在那里。无论如何,我正在添加这个答案,以防其他人像我一样对identifier可以设置的位置感到困惑......

于 2016-02-09T16:01:00.997 回答