如何在objective-c中正确地像Finder一样对文件名进行排序

时间:2010-04-26 07:16:08

标签: objective-c sorting binding nsmutablearray nstableview

我将NStableView与NSMutableArray绑定,包含文件名和其他文件详细信息。 使用compare进行简单的biniding和排序:没有像finder那样正确地对文件名进行排序。 如果我需要定义用于排序文件名的自定义选择器以及如何定制,请告诉我?

2 个答案:

答案 0 :(得分:5)

从Mac OS X 10.6开始,只需使用-[NSString localizedStandardCompare:]

对于早期系统,请参阅Technical Q&A QA1159: Sorting Like the Finder

答案 1 :(得分:2)

使用TableColumn属性中的自定义选择器,特别感谢KennyTM

// category on NSString for custom comparison
@interface NSString (FilesComparison)
- (NSComparisonResult)compareFiles:(NSString*)file;
@end
@implementation NSString (FilesComparison) 
- (NSComparisonResult)compareFiles:(NSString*)file {
    return [(NSString *)self compare:file options: NSCaseInsensitiveSearch|NSNumericSearch];
}
@end