У меня есть NSTokenField
, которое позволяет пользователю выбирать контакты (так же, как и в Mail.app). Таким образом, NSTextField привязывается к массиву в моей переменной model.recipient model.recipient
instance variable.
Теперь пользователь может выбрать запись из списка автоматического завершения, например, Joe Bloggs: joe@blogs.com
, и как только он попадает на Enter, отображается токен (Joe Bloggs)
, и model.recipient
теперь содержит BBContact
запись.
Теперь, если пользователь начинает вводить некоторые ключи (таким образом, отображаются предложения), а затем нажимает Tab вместо Enter токена со значением текста завершения (Joe Bloggs: joe@bloggs.com)
, и не вызываются методы NSTokenFieldDelegate
, так что я могу ответить на это событие. Запись model.recipient
теперь содержит NSString
вместо BBContact
.
Любопытно, что метод делегирования tokenField:shouldAddObjects:atIndex:
не вызывается, чего я и ожидал бы, когда пользователь выставляет закладки из поля token.