NSTokenField:不同颜色的标记

问题描述:

我在xib中创建了一个NSTokenField。我想在tokenField中显示具有不同颜色的标记。含义:一些令牌将是蓝色的,其余的将是红色的(根据其内容)。那可能吗?NSTokenField:不同颜色的标记

以下代码对我无效。我希望有人能帮助我:

- (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; 
} 

结果:!所有令牌保持蓝色... :-(

任何帮助将高度赞赏

它可以通过使用私有API的子类NSTokenAttachmentCell(私人)和NSTokenFieldCell

Sample project

enter image description here

使用BWTokenAttachmentCell和BWTokenFieldCell类和NSTokenAttachmentCell BWToolkit的类转储。修改BWTokenAttachmentCell的初始化方法。

[示例项目

注:

使用此方法,如果你没有为Mac App Store的目标。

+0

谢谢@Parag,但是我想知道如何用不同的颜色对不同的单元格进行着色:第一个用蓝色表示,第二个用红色表示,我会澄清我最初的问题。 – Nili

你可能不得不自己扮演角色。 2010年有一个关于高级Cocoa Text处理的wwdc视频。 NSTokenField使用NSTextAttachments来渲染令牌。