2009-05-12 8 views
2

Ich habe ein NSTableView und ein NSTokenField in einem Fenster. Ich habe die folgenden Delegatmethoden implementiert:Füllen Sie ein NSTokenField mit Token aus einem Container mit Objekten

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

Ich will es machen, so dass, wenn eine Zeile darin ausgewählt ist, die NSTokenField mit den Tags bevölkert wird, die in einer NSMutableSet des Zeilenobjekt enthalten sind. Wie bearbeite ich ein NSTokenField mit Token, wenn ich einen Container mit den Objekten habe, die sie repräsentieren (und daher die Strings, die zu Token gemacht werden müssen)?

Antwort

4

Ich fand es heraus. In dem folgenden Code ist ms ein NSMutableSet, das meine Objekte enthält.

 //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]; 

Der Schlüssel ist, die letzte Zeile: [tokenField setObjectValue: ma];

Verwandte Themen