2010-04-26 2 views
2

Je lie NStableView avec NSMutableArray contenant les noms de fichiers et d'autres détails de fichier. La biniding et le tri simples avec compare: ne trient pas correctement les noms de fichiers comme finder. S'il vous plaît laissez-moi savoir si je dois définir un sélecteur personnalisé pour trier les noms de fichiers et comment?Comment trier les noms de fichiers correctement comme Finder dans l'objectif-c

+0

correctement le tri Define. –

+0

merci de votre aide. Il semble que j'ai fait trier le nom de fichier en utilisant un sélecteur personnalisé comme suit: // catégorie sur NSString pour comparaison personnalisée @interface NSString (FilesComparison) - (NSComparisonResult) compareFiles: fichier (NSString *); @end @implementation NSString (FilesComparison) - (NSComparisonResult) compareFiles: (NSString *) fichier { \t retour [(NSString *) auto comparer: options de fichier: NSCaseInsensitiveSearch | NSNumericSearch]; } @end Merci encore – AmitSri

Répondre

3

A partir de Mac OS X 10.6 il suffit d'utiliser -[NSString localizedStandardCompare:].

Pour les systèmes précédents, voir Technical Q&A QA1159: Sorting Like the Finder

+0

Merci d'avoir pris le temps de fournir des informations précieuses. – AmitSri

+0

Je viens de passer quelques heures à essayer de trouver comment trier les fichiers comme Finder et je pense que cette info sera utile car il n'est pas facile de le trouver :) – tig

+1

Le lien est cassé. – rmaddy

2

l'aide du sélecteur personnalisé dans TableColumn Attribut remerciements à 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 
Questions connexes