4

我已经使用它的委托方法实现了具有自动完成功能的 NSTokenField:

- (NSArray *)tokenField:(NSTokenField *)tokenField 
             completionsForSubstring:(NSString *)substring 
             indexOfToken:(NSInteger)tokenIndex 
             indexOfSelectedItem:(NSInteger *)selectedIndex
{
    return @[@"Token 1", @"Token 2", @"Token 3"];
}

...并且它适用于硬编码数组或可以在我的应用程序中本地创建的任何数组。当用户在令牌字段中键入时,我需要从服务器下载令牌。我正在使用 AFNetworking 2 异步获取给定子字符串的令牌。不幸的是,我找不到使用异步流实现自动完成的方法。我注意到,如果返回完成数组的时间过长,委托方法将冻结 UI,因此从此时向服务器的同步请求不是解决方案。文档也没有提示我如何异步实现自动完成。也许它需要一些更复杂的解决方案,只使用NSTextField委托方法。任何帮助,将不胜感激。

4

0 回答 0