Objective c 如何在具有NSAttribute字符串的NSComboBox中添加自动完成功能

Objective c 如何在具有NSAttribute字符串的NSComboBox中添加自动完成功能,objective-c,macos,cocoa,Objective C,Macos,Cocoa,我有一个带有5列的NSTableView。其中一列包含nscomboxcell。此组合框中填充了大量不同颜色的字符串。因此,我使用NSAttributedStrings将彩色字符串添加到我的组合框中。我的问题是我想将自动完成功能添加到我的nscomboxcell 早些时候,我通过子类化nscomboxcell并重写completedString:method,为组合框(其所有成员为NSString)做了此操作。如何使用NSAttributedString实现组合框的相同功能?仅使用complet

我有一个带有5列的
NSTableView
。其中一列包含
nscomboxcell
。此组合框中填充了大量不同颜色的字符串。因此,我使用
NSAttributedStrings
将彩色字符串添加到我的组合框中。我的问题是我想将自动完成功能添加到我的
nscomboxcell


早些时候,我通过子类化
nscomboxcell
并重写completedString:method,为组合框(其所有成员为
NSString
)做了此操作。如何使用
NSAttributedString
实现组合框的相同功能?

仅使用completedString:method并使用NSString。要更改颜色,请创建NSValueTransformer绑定并使用以下代码。我希望有帮助。 `


1.有没有办法不用绑定就可以做到这一点。因为我的代码中没有使用绑定。2.或者,如果我使用绑定并按照您的代码进行绑定,我是否需要使用NSArrayController?3.另一件事是在我的组合框列表中有重复的项目。自动完成是否适用于此类列表(重复项)。请使用NSTableViewDataSourceDelegate方法:行数tableView:tableView:objectValueForTableColumn:row:tableView:setObjectValue:forTableColumn:row:(仅基于单元格的表)我已经按照您的建议使用了NSTableViewDataSourceDelegate方法。我有一个5列的NSTableView。其中一列包含NSCOMBOXCELL。我正在用不同类型(jpg、png)的文件名填充组合框,而不使用扩展名。不同颜色的不同类型的文件。我使用NSArray存储文件名并填充到组合框中。是否可以在不使用绑定的情况下为NSAttributedString添加自动完成功能。其次,组合框列表中有重复项。那么“自动完成”是否适用于重复项?请建议。。。。
+ (Class)transformedValueClass{

    return [NSAttributedString class];
}

+ (BOOL)allowsReverseTransformation{

    return NO;
}

- (id)transformedValue:(id)value{

    NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:
                                [NSColor redColor],NSForegroundColorAttributeName,nil];

    NSAttributedString *str = [[NSAttributedString alloc] initWithString:value attributes:attributes];

    return str;
}