我正在创建一个使用NSTokenField的应用程序。我需要自动完成。我正在使用NSURLRequest从http://stackoverflow.com/filter/tags?_=<timestamp>&limit=6&q=<str_to_autocomplete>×tamp=<timestamp>
<timestamp>
是当前时间戳,<str_to_autocomplete>
是自动填充的字符串。所以,例如http://stackoverflow.com/filter/tags?_=1263657227137&q=lol&limit=6×tamp=1263657227137
响应采用以下格式:
javascript|23179
jquery|16936
sql-server|11768
ruby-on-rails|8669
best-practices|7037
ruby|6722
(该数字是使用此标签的次数)。
我需要在NSTokenField下为用户提供一个带有此标记列表的列表,用户可以选择其中一个列表,也可以继续输入。
任何人都可以帮助我吗?感谢。
编辑:我现在正在看Mac Dev Center。我应该使用这种方法:tokenField:completionsForSubstring:indexOfToken:indexOfSelectedItem:
?
答案 0 :(得分:5)
这将发送给委托以查询字符串数组:
tokenField:completionsForSubstring:indexOfToken:indexOfSelectedItem:
这些字符串应由tokenField
中的representedObject
处理(如果只需要字符串,则不会处理)。
tokenField
代表中的示例:
- (NSArray *)tokenField:(NSTokenField *)tokenField completionsForSubstring:(NSString *)substring indexOfToken:(NSInteger)tokenIndex indexOfSelectedItem:(NSInteger *)selectedIndex
{
//code to find the tags strings corresponding to substring (the string typed in the token)
//then put them in an array (returnArray)
return returnArray;
}
tokenField
会在您输入时显示菜单中已完成的字符串。所有细节都在文档中。