У меня есть NSTokenField, где я устанавливаю токены через setObjectValue:[NSArray ..] с помощью пользовательских объектов. Я реализую общие методы NSTokenFieldDelegate:
- (NSArray *)tokenField:(NSTokenField *)tokenField shouldAddObjects:(NSArray *)_tokens atIndex:(NSUInteger)index
- (NSString *)tokenField:(NSTokenField *)tokenField displayStringForRepresentedObject:(id)representedObject
- (NSTokenStyle)tokenField:(NSTokenField *)tokenField styleForRepresentedObject:(id)representedObject
- (BOOL)tokenField:(NSTokenField *)tokenField hasMenuForRepresentedObject:(id)representedObject
- (NSMenu *)tokenField:(NSTokenField *)tokenField menuForRepresentedObject:(id)representedObject
- (BOOL)tokenField:(NSTokenField *)tokenField writeRepresentedObjects:(NSArray *)objects toPasteboard:(NSPasteboard *)pboard
- (NSArray *)tokenField:(NSTokenField *)tokenField readFromPasteboard:(NSPasteboard *)pboard
Кажется, все работает, поскольку я вижу токены в нередактируемом текстовом поле.
Поскольку это текстовое поле (не редактируемое), пользователь может выбрать текст (в данном случае токены). Когда пользователь нажимает на токен, он помечается как выбранный.
Теперь я пытаюсь найти выбранный токен (после нажатия кнопки мыши), но, похоже, я не могу получить к нему доступ ни из NSTokenField, ни из NSTextField, ни из NSControl.
Я пытаюсь использовать tokenField.selectedCell, который дает мне NSTokenFieldCell: 0x6000001c2b20, объект, не меняющийся при моем выборе. Когда я запрашиваю представленный объект selectedCell, я получаю нулевую ссылку.
У кого-нибудь есть идея, как мы можем получить доступ к выбранному токену из NSTokenField?