Заполните NSTokenField токенами из контейнера объектов
У меня есть NSTableView и NSTokenField в окне. Я реализовал следующие методы делегата:
tokenField:completionsForSubstring:indexOfToken:indexOfSelectedItem:
tokenField:representedObjectForEditingString:
tokenField:displayStringForRepresentedObject:
Я хочу сделать так, чтобы при выделении в нем строки NSTokenField заполнялся тегами, содержащимися в NSMutableSet объекта строки. Как мне заполнить NSTokenField токенами, если у меня есть контейнер объектов, которые они представляют (и, следовательно, строки, которые необходимо преобразовать в токены)?
1 ответ
Решение
Я понял. В приведенном ниже коде 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: ma];