Возврат представленных объектов

Когда пользователь вводит строку и нажимает символ маркирования, маркерное поле отправляет tokenField:representedObjectForEditingString: обменивайтесь сообщениями его делегату. Это сообщение просит, чтобы делегат возвратил представленный объект для вводимой строки маркера ( editingString параметр в Перечислении 1). В этом примере делегат находит и возвращается iTunesTrack объект с соответствием имени editingString.

Перечисление 1  Возвращаясь представляло объекты для маркеров

- (id)tokenField:(NSTokenField *)tokenField representedObjectForEditingString: (NSString *)editingString {
    iTunesTrack *track = [tracks objectWithName:editingString];
    if ([track exists])
        return track;
    return nil;
}

Если возвращается делегат nil, никакие представленные объекты не связаны со строкой маркера. Иначе, маркерное поле запрашивает своего делегата к строке дисплея для использования для каждого маркера путем вызова tokenField:displayStringForRepresentedObject: метод. Перечисление 2 показывает реализацию этого метода делегации.

Перечисление 2  Возвращая дисплей представляет в виде строки для представленного объекта

- (NSString *)tokenField:(NSTokenField *)tokenFieldArg displayStringForRepresentedObject:(id)representedObject {     return [representedObject name]; }