我有一个NSTableView,我正在尝试设置自动保存以保留列大小和排序。
在属性检查器中,我在“表视图”下的“自动保存”字段中输入了一个值,并选中了“列信息”。
当我构建并运行应用程序时,出现错误:
Column identifiers used with NSTableView autosave feature must conform to NSCoding protocol: (null)
我是Cocoa / Objective-C的新手,所以我不清楚如何定义列标识符?
更新:我没有为标识符输入任何值,它被列为“自动”。但是,如果我在表列的标识符中输入字符串值,我仍然会得到相同的结果
更新II :清洁和重建似乎在手动输入值后修复了它。但为什么自动识别器不起作用?
答案 0 :(得分:1)
清洁和重建似乎在手动输入后修复了它 值。但为什么自动识别器不起作用?
Interface Builder有时会接受输入。他们做了相当多的重新工作,将IB直接集成到Xcode 4中,这增加了许多奇怪的错误。
随着点发布的推出,Apple已经在Xcode 4中稳定了IB。所需的清洁/重建量远低于以往。
答案 1 :(得分:1)
我遇到了这个问题,直到我确定每个列都有一个标识符。然后它奏效了。
答案 2 :(得分:0)
这个问题的答案都没有令人满意地回答这个问题。是的,您需要为每个NSTableColumn
设置标识符值; “自动”标识符显然不起作用(从Xcode 7.2开始)。但是你在哪里设置这些?标识符不在IB窗格中的值检查器中,您可能期望它(这是我查找它的地方,然后做了一些令人头疼的事)。相反,它位于IB窗格中的Identity Inspector上,看起来像一个小报纸。我猜identifier
可能是所有nib对象(?)的一般属性,但我不记得以前需要使用它之前的任何其他东西,所以我从来没有注意到它在那里。无论如何,我正在添加这个答案,以防其他人感到困惑,就像我一样,identifier
可以在哪里设置......