2010-04-26 30 views
2

我使用NSMutableArray绑定NStableView来连接文件名和其他文件详细信息。 使用比较简单地进行二进制和排序:没有正确排序文件名称,例如finder。 请让我知道,如果我需要定义自定义选择器分类文件名和如何?在TableColumn的如何正确排序文件名正如Finder中的objective-c

+0

定义正确的排序。 – 2010-04-26 07:19:31

+0

感谢您的帮助。似乎我已经使用自定义选择器如下所示的文件名排序工作: // NSString类别的自定义比较 @interface NSString(FilesComparison) - (NSComparisonResult)compareFiles:(NSString *)file; @end @implementation的NSString(FilesComparison) - (NSComparisonResult)compareFiles:(的NSString *)文件{ \t回报[(的NSString *)自我比较:文件选项:NSCaseInsensitiveSearch | NSNumericSearch]。 } @end 再次感谢 – AmitSri 2010-04-26 08:40:09

回答

3

从Mac OS X 10.6开始只是用-[NSString localizedStandardCompare:]

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

+0

感谢您花时间提供有价值的信息。 – AmitSri 2011-01-12 07:02:11

+0

我刚刚花了几个小时试图找到如何将文件排序为Finder,我认为这个信息将是有用的,因为它不容易找到它:) – tig 2011-01-12 15:53:12

+1

链接已损坏。 – rmaddy 2017-10-27 18:39:24

2

使用自定义选择属性特别感谢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