NSTextField自动完成/建议

时间:2015-08-16 09:49:18

标签: objective-c autocomplete nsarray nstextfield

有些日子以来,我正在尝试为NSTextField编写自动完成代码。自动完成应该是这样的,当用户点击NSTextfield时,应该在TextField下显示列表,这些可能性是可用的。在输入一个字母或数字后,列表应该刷新可能性。

此列表中的建议应来自NSMutableArrayNSMutableDictionary

此自动完成/自动提示方法应该适用于MAC应用程序。

1 个答案:

答案 0 :(得分:2)

只是添加@ AbcdEfg的答案,为了使NSComboBox不区分大小写,你可以对它进行子类化并覆盖它的[completedString:]方法,如下所示:

- (NSString *) completedString:(NSString *)string {
  NSUInteger l = [string length];
  if (!!l)
    for (NSString *match in [self objectValues])
      if ([[match commonPrefixWithString:string options:NSCaseInsensitiveSearch] length] == l)
        return [match stringByReplacingCharactersInRange:NSMakeRange(0, l) withString:string];

  return nil;
}