Заполните NSTokenField токенами из контейнера объектов - PullRequest
2 голосов
/ 12 мая 2009

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

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

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

1 Ответ

4 голосов
/ 12 мая 2009

Я понял это. В приведенном ниже коде 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];

...