Отображение списка завершения

Когда пользователь начинает вводить в маркерном поле, управление отправляет (после того, как указанная задержка завершения) a tokenField:completionsForSubstring:indexOfToken:indexOfSelectedItem: обменивайтесь сообщениями его делегату. Делегат оценивает переданный - в подстроке для текущего маркера и возвращает массив строк, которые являются возможными завершениями подстроки.

Код в Перечислении 1 находится в приложении, использующем технологию Моста Сценариев (представленный в OS X v10.5) для запросов приложения iTunes для дорожек в музыкальной библиотеке пользователя. Приложение хранит эти дорожки (iTunesTrack объекты) в переменной экземпляра назван trackNames. Делегат в этом методе получает имена всех дорожек и затем использует NSArray метод filteredArrayUsingPredicate: сузить этот массив дорожки называет тем, начальные символы которых соответствуют переданный - в подстроке.

Перечисление 1  Возвращая список завершения

- (NSArray *)tokenField:(NSTokenField *)tokenFieldArg completionsForSubstring:(NSString *)substring indexOfToken:(NSInteger)tokenIndex indexOfSelectedItem:(NSInteger *)selectedIndex {
 
    NSArray *trackNames = [tracks valueForKey:@"name"];
    NSArray *matchingTracks = [trackNames filteredArrayUsingPredicate:
                 [NSPredicate predicateWithFormat:@"SELF beginswith[cd] %@", substring]];
    return matchingTracks;
}

selectedIndex параметр, не использующийся в этом примере, позволяет делегату возвращать выбор по умолчанию в списке завершения.