Кто-нибудь знает какой-либо класс или lib, которые могут реализовать автозаполнение до NSTextField?NSTextField autocomplete
Я пытаюсь заставить стандартное автозаполнение работать, но оно сделано как синхронный апи. Я получаю слова автозаполнения через вызов 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 is:
- (NSArray *)control:(NSControl *)control textView:(NSTextView *)textView completions:(NSArray *)words forPartialWordRange:(NSRange)charRange indexOfSelectedItem:(NSInteger *)index
{
*index = -1;
return self.completions;
}
Моя проблема в том, что это всегда будет 1 запрос позади и список завершения o nly показывает на каждом втором символе, который вводит пользователь.
Я попытался найти Google и SO как сумасшедший, но я не могу показаться, чтобы найти какие-либо решения ..
Любая помощь очень ценится.
Я проверю ваше решение, когда вернусь к своему коду. –
Он отлично работал. Я просто изменил if-statematement, чтобы проверить self.autoCompleteRequestor вместо self.doingAutocomplete. Этот boolean var больше не нужен. Еще раз спасибо! –