有谁知道可以对 NSTextField 实现自动完成的任何类或库?
我试图让标准自动完成工作,但它是作为同步 api 制作的。我通过互联网上的 api 调用获得我的自动完成词。
到目前为止我所做的是:
- (void)controlTextDidChange:(NSNotification *)obj
{
if([obj object] == self.searchField)
{
[self.spinner startAnimation:nil];
[self.wordcompletionStore completeString:self.searchField.stringValue];
if(self.doingAutocomplete)
return;
else
{
self.doingAutocomplete = YES;
[[[obj userInfo] objectForKey:@"NSFieldEditor"] complete:nil];
}
}
}
当我的商店完成后,我有一个被调用的代表:
- (void) completionStore:(WordcompletionStore *)store didFinishWithWords:(NSArray *)arrayOfWords
{
[self.spinner stopAnimation:nil];
self.completions = arrayOfWords;
self.doingAutocomplete = NO;
}
将完成列表返回到 nstextfield 的代码是:
- (NSArray *)control:(NSControl *)control textView:(NSTextView *)textView completions:(NSArray *)words forPartialWordRange:(NSRange)charRange indexOfSelectedItem:(NSInteger *)index
{
*index = -1;
return self.completions;
}
我的问题是,这将始终落后 1 个请求,并且完成列表仅显示在用户输入的每个第二个字符上。
我试过像疯子一样搜索谷歌,但我似乎找不到任何解决方案..
任何帮助深表感谢。