0

场景:
我将一个 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?

或者......这是一个错误?

4

1 回答 1

0

NSTableView 是较早创建的,具有自己的 NSTableColumn 标识符。我看了一些标识符,它们似乎没问题。

显然不是:我了解到所有标识符都必须真正符合 NSCoding-Compliant。所以也许有些标识符是错误的。

补救措施:我生成了一个新的字符串类型标识符/NSTableColumn(覆盖任何现有的标识符)。那成功了。

于 2016-01-06T21:13:31.567 回答