Отображение списка завершения
Когда пользователь начинает вводить в маркерном поле, управление отправляет (после того, как указанная задержка завершения) 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 параметр, не использующийся в этом примере, позволяет делегату возвращать выбор по умолчанию в списке завершения.