有誰知道可以實現自動完成到NSTextField的任何類或lib?NSTextField自動完成
我試圖讓標準autocmpletion工作,但它是作爲一個同步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請求後面和完成列表o只有在用戶輸入的每個第二個字符上纔會顯示。
我試圖搜索谷歌和SO像個瘋子一樣,但我似乎無法找到任何解決方案..
任何幫助深表感謝。
當我回到我的代碼時,我會測試您的解決方案。 –
它工作完美。我只是改變了if-statemate來檢查self.autoCompleteRequestor而不是self.doingAutocomplete。這個布爾變量不再需要。再次感謝! –