我在窗口中有一个NSTableView和一个NSTokenField。我已经实现了以下委托方法:
tokenField:completionsForSubstring:indexOfToken:indexOfSelectedItem:
tokenField:representedObjectForEditingString:
tokenField:displayStringForRepresentedObject:
我想这样做,以便在其中选择一行时,NSTokenField将填充包含在行对象的NSMutableSet中的标记。如果我有一个它们所代表的对象的容器(因此需要将其作为标记的字符串),我如何使用标记填充NSTokenField?
答案 0 :(得分: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];