2010-01-16 3 views
0

Я создаю приложение, которое использует NSTokenField. Мне нужна автозаполнение. Я использую NSURLRequest для запроса данных из http://stackoverflow.com/filter/tags?_=<timestamp>&limit=6&q=<str_to_autocomplete>&timestamp=<timestamp>NSTokenField autocomplete

Где <timestamp> является текущей меткой времени, является строкой для автозаполнения. Так, например, http://stackoverflow.com/filter/tags?_=1263657227137&q=lol&limit=6&timestamp=1263657227137

Ответ в этом формате:

javascript|23179 
jquery|16936 
sql-server|11768 
ruby-on-rails|8669 
best-practices|7037 
ruby|6722 

(Число является число раз используется этот тег).

Мне нужно предоставить пользователю список под NSTokenField с этим списком тегов, и пользователь может либо выбрать один из списка, либо продолжить ввод.

Может ли кто-нибудь мне помочь? Благодарю.

Редактировать: Я смотрю сейчас Центр Mac Dev. Должен ли я использовать этот метод: tokenField:completionsForSubstring:indexOfToken:indexOfSelectedItem:?

+0

Я немного смущен, что вы просите. Вы хотите отобразить список тегов в поле маркера для выбора, или у вас есть дополнительный элемент управления под ним для тегов, и когда они будут выбраны, они появятся в поле маркера? – sbooth

+0

Дополнительный контроль под ним. – 2010-01-16 16:09:55

ответ

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 представит строки завершенные в меню, как вы печатаете. Все данные приведены в документе.