If all you want is autocompletion, and not tokenization, you can achieve this by using a plain NSTextField and implementing the delegate method:
- (NSArray *)control:(NSControl *)control textView:(NSTextView *)textView completions:(NSArray *)words forPartialWordRange:(NSRange)charRange indexOfSelectedItem:(NSInteger *)index
(This method is actually declared in NSControl, NSTextField's superclass.)
If you do want to have tokenization, then you will have to provide an NSArray for the object value to be displayed in the token field. As explained in the NSTokenField programming guide, the array you provide will be a mix of strings and objects. Strings will be displayed as-is, and any non-string objects will be displayed as tokens in the token field. You would need to implement the various NSTokenField delegate methods to provide a string to be displayed for each represented object in your array.
It does appear that the Cocoa Bindings Reference states that the object bound to the value of an NSTokenField should be a string or number, but in my experience, this is incorrect, and the token field should be bound to an NSArray, just like when using setObjectValue: