Добавьте тень (эффект утопленного текста) к метке Какао без ухудшения качества отображения текста

Я хотел бы создать строку состояния с текстовым эффектом, как в Safari или iTunes, то есть с утопленным текстом.

пример

Однако, если я просто добавлю тень в Интерфейсном Разработчике, используя панель Core Animation, худший рендеринг текста в OS X проявится:

где мой субпиксель

Что за хитрость заключается в том, чтобы получить утопленный текст на этикетке и сохранить правильный субпиксельный рендеринг?

2 ответа

Решение

Существует встроенный способ сделать это:

[[yourTextField cell] setBackgroundStyle:NSBackgroundStyleRaised];

Это дешевый старый трюк: вы рисуете текст белым цветом со смещением, а затем рисуете черный текст поверх него.

В системе рисования текста есть ловушка для теней, NSShadowAttributeName NSAttributedString. Но, проверяя это, он, похоже, убивает субпиксельное сглаживание.

Другие вопросы по тегам