我已经将NSComboBox绑定到接口构建器中的数据源.当我在NSComboBox中输入内容时,我正确地获得了自动完成建议.
但是,自动完成是区分大小写的,这意味着如果角色使用了错误的大小写我就不会得到建议.
如何为NSComboBox启用不区分大小写的自动完成,NSComboBox绑定到接口构建器中的数据源?
谢谢
您应该comboBox:completedString:在 NSComboBox 数据源中实现,例如:
- (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 @"";
}
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以子类化 NSComboBoxCell 并覆盖 [NSComboBoxCellcompletedString:]。
- (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;
}
Run Code Online (Sandbox Code Playgroud)