2

我在一个窗口中有一个 NSTableView 和一个 NSTokenField 。我已经实现了以下委托方法:

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

我想这样做,以便当在其中选择一行时,NSTokenField 会填充包含在行对象的 NSMutableSet 中的标签。如果我有一个包含它们所代表的对象的容器(以及因此需要制作成标记的字符串),我如何用标记填充 NSTokenField?

4

1 回答 1

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:ma];

于 2009-05-12T09:50:29.987 回答