我已将NSComboBox绑定到接口构建器中的数据源。 当我在NSComboBox中输入内容时,我正确地获得了自动填充建议。
然而,自动填充是区分大小写的,这意味着如果角色使用了错误的情况我就不会得到建议。
如何为NSComboBox启用不区分大小写的自动完成,NSComboBox绑定到界面构建器中的数据源?
由于
答案 0 :(得分:4)
您应该在NSComboBox数据源中实现comboBox:completedString:
,例如:
- (NSString *)comboBox:(NSComboBox *)comboBox completedString:(NSString *)partialString
{
for (NSString dataString in dataSourceArray) {
if ([[dataString commonPrefixWithString:partialString options:NSCaseInsensitiveSearch] length] == [commonPrefixWithString:partialString length]) {
return testItem;
}
}
return @"";
}
答案 1 :(得分:4)
你可以继承NSComboBoxCell并重写[NSComboBoxCell completedString:]。
- (NSString *)completedString:(NSString *)string
{
NSString *result = nil;
if (string == nil)
return result;
for (NSString *item in self.objectValues) {
NSString *truncatedString = [item substringToIndex:MIN(item.length, string.length)];
if ([truncatedString caseInsensitiveCompare:string] == NSOrderedSame) {
result = item;
break;
}
}
return result;
}