2013-07-16 49 views
2

我在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; 
} 

結果:!所有令牌保持藍色... :-(

任何幫助將高度讚賞

回答

1

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

Sample project

enter image description here

使用BWTokenAttachmentCell和BWTokenFieldCell類和NSTokenAttachmentCell BWToolkit的類轉儲。修改BWTokenAttachmentCell的初始化方法。

[示例項目

注:

使用此方法,如果你沒有爲Mac App Store的目標。

+0

謝謝@Parag,但是我想知道如何用不同的顏色對不同的單元格進行着色:第一個用藍色表示,第二個用紅色表示,我會澄清我最初的問題。 – Nili

1

你可能不得不自己扮演角色。 2010年有一個關於高級Cocoa Text處理的wwdc視頻。 NSTokenField使用NSTextAttachments來渲染令牌。