2009-05-12 4 views
2

У меня есть NSTableView и NSTokenField в окне. Я выполнил следующие методы делегата:Заполнение NSTokenField с помощью токенов из контейнера объектов

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

Я хочу сделать так, что, когда строка выбрана в нем, NSTokenField получает заселен с тегами, которые содержатся в NSMutableSet объекта строки. Как заполнить NSTokenField с помощью токенов, если у меня есть контейнер объектов, которые они представляют (и, следовательно, строки, которые должны быть сделаны в токены)?

ответ

4

Я понял. В приведенном ниже коде ms - это NSMutableSet, содержащий мои объекты.

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

Ключ в последней строке: [tokenField setObjectValue: ма];