I have created an NSTokenField in my xib. I'd like to display tokens with different colors inside that tokenField. Meaning: some tokens will be blue, the rest will be red (according to their content). Is that possible?
The following code doesn't work for me. I hope someone can help me out:
- (id)tokenField:(NSTokenField *)tokenField representedObjectForEditingString:(NSString *)editingString
{
id returnRepresentedObject = nil;
NSTokenFieldCell *tf = [[NSTokenFieldCell alloc] init];
tf.stringValue = editingString;
tf.backgroundColor = [NSColor redColor];
returnRepresentedObject = tf;
return returnRepresentedObject;
}
Result: all tokens remain blue... :-(
Any help will be highly appreciated!
Its possible by using private APIs. Subclass
NSTokenAttachmentCell
(Private) andNSTokenFieldCell
.Sample project
Use BWTokenAttachmentCell and BWTokenFieldCell class and NSTokenAttachmentCell class dump from BWToolkit. Modify initialize method of BWTokenAttachmentCell.
[sample project
NOTE:
Use this method if you are not targeting for Mac App Store.