Я пытаюсь эмулировать токенизированную функцию поиска Mail.app и Finder.app на 10.7+, где есть то, что выглядит как NSSearchField со значком увеличительного стекла поиска слева и кнопкой отмены (x) справа, но также включает токены внутри поля поиска.
Есть ли способ заставить NSSearchField использовать NSTokenFieldCell вместо NSSearchFieldCell? Я попытался вызвать -setCell:
в экземпляре NSSearchField, который работает и, кажется, заменяет ячейку, о чем свидетельствует вызов po [searchField cell]
в отладчике, но рисование поля поиска прерывается, и текстовое поле не рисуется.
Правильно ли я подхожу к этому или есть лучший способ сделать это? Спасибо!
Обновление от 25 октября 2016 г.. С помощью инспектора специальных возможностей я обнаружил, что Finder и Mail используют смешанные частные подклассы:
SGTSearchField : NSSearchField
SGTSearchFieldCell : NSSearchFieldCell
SGTTokenFieldCell : NSTokenFieldCell
Они являются частью частной структуры под названием Suggestions.framework
. Надеюсь, Apple сделает эти классы общедоступными в будущем. Не забудьте отправить радар, если вы хотите, чтобы эта функция была общедоступной.