Как настроить NSTokenField, как в полях "To / CC" в почте Mac? - PullRequest
6 голосов
/ 25 февраля 2010

Я могу работать с NSTokenField, он прост в использовании ... но я хочу, чтобы ваши предложения о том, как я могу настроить его так же, как в полях "To / CC" в mac mail, т.е. когда нет токенов в поле токенов увеличивается высота поля «To» увеличивается до определенного предела, после чего начинает появляться вертикальный скроллер!

По умолчанию, когда мы используем поле токена, его высота не увеличивается, и вертикальная прокрутка не появляется! Я пробовал разные комбинации в IB, но я не мог получить Mac почты, как функциональность.

Может кто-нибудь предложить мне какое-нибудь решение для этого ??

Ответы [ 2 ]

4 голосов
/ 18 июня 2010

Вам потребуется создать подкласс NSTokenField, чтобы получить желаемую функциональность. Обязательно и назовите setWraps: ДА.

Когда содержимое поля токена изменится, вам придется рассчитать необходимый размер поля токена и изменить его размер самостоятельно. То же самое с добавлением полосы прокрутки. После того, как высота поля токена достигнет некоторого размера, вы вставите в него вид прокрутки. И наоборот, когда пересчет размера поля токена меньше критического размера, вы удалите представление прокрутки.

Это значительный объем работы (я нашел), чтобы заставить его работать правильно. Apple утверждает, что NSTokenField «обеспечивает токенизированное редактирование, подобное полю адреса в почтовом приложении», но на самом деле это совсем не так, поскольку в нем нет встроенного изменения размера, а перетаскивание проблематично для всего, кроме текста. *

2 голосов
/ 17 сентября 2010

Мне удалось добиться этого с помощью IFVerticallyExpandingTextField . Поскольку NSTokenField наследуется от NSTextField, я сделал IFVerticallyExpandingTextField наследоваться от NSTokenField, а затем поместил в подкласс IFVerticallExpandingTextField для реализации всего, что мне нужно было сделать с моей версией NSTokenField.

Это должно быть просто падение. Сразу должно начать работать.

...