【发布时间】:2013-05-14 18:40:36
【问题描述】:
我的班级有一个属性是enum。此属性绑定到NSTableColumn。
typedef enum _Status
{
Unknown=0,
Win,
OSX
} Status;
为了确保NSTableColumn 显示正确的字符串表示,而不是显示数字0、1 和2,我使用NSValueTransformer。
所以Unknown 变成了“未知操作系统”。 Win 变成“MS Windows”,OSX 变成“OSX 10.8”。表格列正确显示了这些值。
我需要使用转换后的值对列进行排序。如果我使用
[NSSortDescriptor sortDescriptorWithKey:@"status"
ascending:YES
selector:@selector(compare:)];
该列按以下顺序排序:
未知操作系统
微软视窗
OSX 10.8
这确实有意义,因为 0
微软视窗
OSX 10.8
未知操作系统
如何在不改变枚举顺序的情况下做到这一点?
【问题讨论】:
标签: objective-c macos cocoa nsvaluetransformer