Macos NSTokenField异步自动完成
我使用委托方法实现了NSTokenField的自动完成功能:Macos NSTokenField异步自动完成,macos,cocoa,asynchronous,autocomplete,nstokenfield,Macos,Cocoa,Asynchronous,Autocomplete,Nstokenfield,我使用委托方法实现了NSTokenField的自动完成功能: - (NSArray *)tokenField:(NSTokenField *)tokenField completionsForSubstring:(NSString *)substring indexOfToken:(NSInteger)tokenIndex indexOfSelectedItem:(NSInteger *)selectedInde
- (NSArray *)tokenField:(NSTokenField *)tokenField
completionsForSubstring:(NSString *)substring
indexOfToken:(NSInteger)tokenIndex
indexOfSelectedItem:(NSInteger *)selectedIndex
{
return @[@"Token 1", @"Token 2", @"Token 3"];
}
…它可以很好地与硬编码数组或任何可以在我的应用程序中本地创建的数组配合使用。当用户在token字段中键入时,我需要从服务器下载token。我使用AF2异步获取给定子字符串的令牌。不幸的是,我找不到用异步流实现自动完成的方法。我注意到,如果返回completions数组的时间太长,委托方法将冻结UI,因此从这一点上向服务器发出同步请求不是一个解决方案。文档也没有告诉我如何异步实现自动完成。也许它需要一些更复杂的解决方案,只需使用NSTextField
delegate方法。任何帮助都将不胜感激