У меня есть NSTokenField, где я устанавливаю маркеры через setObjectValue: [NSArray ..] с пользовательскими объектами. Я реализую общие методы NSTokenFieldDelegate:NSTokenField выбранный токен
- (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
Все, кажется, работает, как я вижу маркеры в не редактируемой TextField.
Как это текстовое поле (не редактируется), пользователь может выбрать текст (в данном случае лексем). Когда пользователь нажимает на токен, он помечается как выбранный.
Теперь я пытаюсь выяснить, выбранный маркер (после действия мыши вниз), но, кажется, я не могу получить доступ к этому из NSTokenField, ни NSTextField, ни NSControl.
Я пытаюсь использовать tokenField.selectedCell, который дает мне NSTokenFieldCell: 0x6000001c2b20, объект, не меняющийся по моему выбору. Когда я спрашиваю представленный объект объекта SelectedCell, я получил нулевую ссылку.
Кто-нибудь понял, как мы можем получить доступ к выбранному токену из NSTokenField?
Wonderview, я увидел, что это было возможно с помощью NSTextView получить выбор, но я пропустил ссылку от NSTokenField доступа к NSTextView, fieldEditorForView: это магический метод здесь. Благодаря! Я могу регистрировать выбранные объекты :) –
Он довольно похоронен в документации. Мне потребовалось некоторое время, чтобы найти его. – SSteve