场景:
我将NSTableColumn传递给了一个函数,我从中切换了它的隐藏标志:
func process(tableColumn:NSTableColumn, purpose:PricingCommercialMenuItems) {
switch purpose {
case .RemoveColumn:
tableColumn.hidden = true
...
}
Column identifiers used with NSTableView autosave feature must conform to NSCoding protocol: (null)
2016-01-06 12:08:27.191 Odyssey[3419:144864] (
0 CoreFoundation 0x00007fff90463ae2 __exceptionPreprocess + 178
1 libobjc.A.dylib 0x00007fff941e5f7e objc_exception_throw + 48
2 CoreFoundation 0x00007fff9046398d +[NSException raise:format:] + 205
3 AppKit 0x00007fff9781834d -[NSTableColumn setHidden:] + 287
如何使列标识符符合NSCoding?
或者......这是一个错误吗?
答案 0 :(得分:0)
之前使用自己的NSTableColumn标识符创建了NSTableView。我瞥了几个标识符,看起来没问题
显然不是:我已经知道所有标识符必须是真正符合NSCoding标准的。所以也许有些标识符是错误的。
补救措施:我生成了一个新的String类型标识符/ NSTableColumn(覆盖任何现有标识符)。这就行了。