2012-03-05 2 views
4

Я хочу добавить подборку шрифтов в мое приложение. Интерфейс интерфейса Xcode имеет большую реализацию, которая также используется в окне собственных настроек Xcode.Xcode-style picker

Это одна с маленькой кнопкой «T» (по-видимому) внутри текстового поля имени шрифта.

Является ли это стандартной реализацией какао?

+0

В настоящее время я изучаю NSFontPanel .. Мне нужен был ответ сам, но хорошо .. – Mazyod

+0

Я тоже хочу использовать этот элемент управления. Вы когда-нибудь придумывали сопоставимое решение? –

ответ

0

Вам нужно будет свернуть самостоятельно. См. Subclassing NSControl. Вы будете подклассы NSTextField и NSTextFieldCell. На самом деле, прочитайте весь путеводитель. Как только у вас будет хорошее понимание, вы можете переопределить процедуры рисования/геометрии, чтобы вернуть прямоугольник, ширина которого немного меньше (достаточно мала, чтобы оставить место для кнопки «шрифт»). Затем нарисуйте кнопку шрифта. Вы будете реагировать на события мыши на кнопке шрифта так же, как и для любого NSView.

0

Нет стандартного элемента управления текстовым полем предварительного просмотра с кнопкой, но существует стандартный класс NSFontPanel, который вы можете использовать, чтобы позволить пользователям выбирать шрифт после нажатия кнопки «T».

Лучшая идея - это, вероятно, переопределить NSTextFieldCell. Я смог получить желаемый внешний вид, переопределив -drawInteriorWithFrame: inView :, и пропустив чуть более широкий фрейм при вызове в супер, а затем сам рисуя кнопку. Вам также нужно было бы выполнить отслеживание мыши самой кнопкой, но вы, вероятно, могли бы просто создать свой собственный экземпляр NSButtonCell и обратиться к нему за несколькими методами с субреклом для кнопки.

Для удобства вы также можете создать подкласс NSTextField, который использует эту ячейку вместо прямого NSTextFieldCell, но если вы загружаете материал из XIB, вы можете просто изменить класс ячейки в XIB и оставьте его в виде обычного текстового поля.