Возврат представленных объектов
Когда пользователь вводит строку и нажимает символ маркирования, маркерное поле отправляет 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]; } |