2009-05-12 6 views
2

J'ai une NSTableView et une NSTokenField dans une fenêtre. Je l'ai mis en œuvre les méthodes de délégué suivantes:Remplir un NSTokenField avec des jetons à partir d'un conteneur d'objets

tokenField:completionsForSubstring:indexOfToken:indexOfSelectedItem: 
tokenField:representedObjectForEditingString: 
tokenField:displayStringForRepresentedObject: 

Je veux faire en sorte que lorsqu'une ligne est sélectionnée en elle, le NSTokenField se rempli avec les balises qui sont contenues dans un NSMutableSet de l'objet de la ligne. Comment peupler un NSTokenField avec des jetons si j'ai un conteneur des objets qu'ils représentent (et donc les chaînes qui doivent être transformées en jetons)?

Répondre

4

Je l'ai compris. Dans le code ci-dessous ms est un NSMutableSet qui contient mes objets.

 //set the token field 
     NSMutableArray *ma = [[NSMutableArray alloc] init]; 
     for (MyClass *anObject in ms){ 
      [ma addObject:anObject]; 
     } 

     //sort the array 
     NSSortDescriptor *sorter = [[NSSortDescriptor alloc] initWithKey: @"title" ascending: YES]; 
     NSArray *sortDescriptorArray = [[NSArray alloc] initWithObjects:sorter, nil]; 

     [ma sortUsingDescriptors:sortDescriptorArray]; 
     [tokenField setObjectValue:ma]; 

La clé est la dernière ligne: [tokenField setObjectValue: ma];

Questions connexes