Если все, что вам нужно, это автозаполнение, а не токенизация, вы можете добиться этого с помощью простого NSTextField и реализации метода делегата:
- (NSArray *)control:(NSControl *)control textView:(NSTextView *)textView completions:(NSArray *)words forPartialWordRange:(NSRange)charRange indexOfSelectedItem:(NSInteger *)index
(Этот метод фактически объявлен в NSControl, суперклассе NSTextField.)
Если вы хотите использовать токенизацию, вам нужно будет предоставить NSArray для значения объекта, которое будет отображаться в поле токена. Как описано в руководстве по программированию NSTokenField , предоставленный вами массив будет представлять собой смесь строк и объектов. Строки будут отображаться как есть, а любые нестроковые объекты будут отображаться как токены в поле токена. Вам потребуется реализовать различные методы делегата NSTokenField, чтобы обеспечить строку, отображаемую для каждого представленного объекта в вашем массиве.
Похоже, что Ссылка на привязку какао гласит, что объект, связанный со значением NSTokenField, должен быть строкой или числом, но, по моему опыту, это неверно, и поле токена должно быть привязанный к NSArray, как при использовании setObjectValue: