2

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

以下代码对我不起作用。我希望有人可以帮助我:

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

结果:所有标记都保持蓝色...... :-(

任何帮助将不胜感激!

4

2 回答 2

1

它可以通过使用私有 API 来实现。子类NSTokenAttachmentCell(私有)和NSTokenFieldCell.

示例项目

在此处输入图像描述

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

[示例项目

笔记:

如果您的目标不是 Mac App Store,请使用此方法。

于 2013-07-29T11:39:14.487 回答
1

您可能必须扮演自己的角色。2010 年有一个关于高级 Cocoa 文本处理的 wwdc 视频。NSTokenField 使用 NSTextAttachments 来呈现标记。

于 2015-07-27T15:19:50.473 回答