В Apple в «Руководстве по программированию поля токенов для какао» в разделе «Основы взаимодействия с делегатом» говорится, что при вводе пользователем текста в поле токена делегат получает сообщение tokenField:completionsForSubstring:indexOfToken:indexOfSelectedItem:
.
И когдапользователь вводит символизирующий символьный делегат, получает сообщение tokenField:representedObjectForEditingString:
.
Так что, когда я реализовал этот метод, он ведет себя совершенно по-другому.
Моя реализация методов делегата есть:
- (NSArray *)tokenField:(NSTokenField *)tokenFieldArg
completionsForSubstring:(NSString *)substring
indexOfToken:(NSInteger)tokenIndex
indexOfSelectedItem:(NSInteger *)selectedIndex {
NSLog(@"completionsForSubstring: %@", substring);
return [NSArray array];
}
- (id)tokenField:(NSTokenField *)tokenField
representedObjectForEditingString:(NSString *)editingString {
NSLog(@"representedObjectForEditingString: %@", editingString);
return editingString;
}
И есть журнал, когда я набираю "Максим" в поле токена и затем стираю его:
2011-03-01 19: 03: 01.286 Aurum [23269:a0f] представленоObjectForEditingString: m
2011-03-01 19: 03: 01.287 Aurum [23269: a0f] представленоObjectForEditingString: m
2011-03-01 19: 03: 01.493 Aurum [23269: a0f] завершенийForSubstring: m
2011-03-01 19: 03: 01.633 Aurum [23269: a0f] представленоObjectForEditingString: ma
2011-03-01 19: 03: 01.633 Aurum [23269: a0f] представленоObjectForEditingString: ma
2011-03-01 19: 03: 01.637 Aurum [23269: a0f] завершений ForSubstring: ma
2011-03-01 19: 03: 03.737 Aurum [23269: a0f] ПредставительObjectForEditingString: mak
2011-03-01 19: 03: 03.737 Aurum [23269: a0f] presentObjectForEditingString: mak
2011-03-01 19: 03: 03.741 Aurum [23269: a0f] завершенийForSubstring: mak
2011-03-01 19: 03: 05.089 Aurum [23269: a0f] presentObjectForEditingString: maks
2011-03-01 19: 03: 05.089 Aurum [23269: a0f] представленоObjectForEditingString: maks
2011-03-01 19: 03: 05.094 Aurum [23269: a0f] завершения ForSubstring: maks
2011-03-0119: 03: 05.841 Aurum [23269: a0f] представленоObjectForEditingString: maksi
2011-03-01 19: 03: 05.841 Aurum [23269: a0f] представленоObjectForEditingString: maksi
2011-03-01 19: 03: 05.845 Aurum[23269: a0f] завершений ForSubstring: maksi
2011-03-01 19: 03: 06.697 Aurum [23269: a0f] ПредставительObjectForEditingString: maksim
2011-03-01 19: 03: 06.697 Aurum [23269: a0f] представляетсяObjectForEditingString: Максим
2011-03-01 19: 03: 06.701 Aurum [23269: a0f] завершает ForSubstring: максим
2011-03-01 19: 03: 12.353 Aurum [23269: a0f] представленоObjectForEditingString: maksi
2011-03-01 19: 03: 12.354 Aurum[23269: a0f] представленоObjectForEditingString: maksi
2011-03-01 19: 03: 12.853 Aurum [23269: a0f] представленоObjectForEditingString: maks
2011-03-01 19: 03: 12.854 Aurum [23269: a0f] представленоObjectForDiting: maks
2011-03-01 19: 03: 12.936 Aurum [23269: a0f] представленоObjectForEditingString: mak
2011-03-01 19: 03: 12.937 Aurum [23269: a0f] представленоObjectForEditingString: mak
2011-03-01 19: 03: 13.020 Aurum [23269: a0f] представленоObjectForEditingString: ma
2011-03-01 19: 03: 13.020 Aurum [23269: a0f] представленоObjectForEditingString: ma
2011-03-01 19:03: 13.103 Aurum [23269: a0f] представленоObjectForEditingString: m
2011-03-01 19: 03: 13.104 Aurum [23269: a0f] представленоObjectForEditingString: m
Так может кто-нибудь объяснить мне, что происходитнеправильно и почему токен fНеужели так странно себя вести?