Я пытаюсь на день или два попытаться получить тень, чтобы нарисовать внутри текста NSTextField (и сделать прозрачный цвет переднего плана, так что все, что вы видите, это тень внутри текст). Я еще не достиг желаемого и практического результата. Единственный успех, который у меня был с этим, заключался в том, чтобы преобразовать текст в NSBezerPath
, вычитая его из кадра NSTextFieldCell и обрезая с использованием метода setClip
(addClip
в этом случае недостаточно, он оставляет окрашенный фон). К сожалению, преобразование текста в NSBezerPath
заставляет края текста выглядеть зазубренными и чрезмерно выпрямленными. Есть ли эффективный и достойный способ достичь этого с помощью масок CoreGraphics и отсечения, потому что я не могу этого достичь.Тень внутри текста на NSTextField/NSTextFieldCel
Очень похожий эффект от того, что я искал, находится в Xcode IDE, если у вас нет сеанса отладки и перейдите в навигатор отладчика, в нем говорится «Нет сеанса отладки» в подклассе NSTextField, который рисует текст с тенью внутри него. Это почти то, что мне нужно. Любое понимание того, с чего начать и как это сделать, было бы здорово.
Пасту бин мой текущий код (работает, но неоптимальный, & нерабочие): http://pastebin.com/4pTv8ZWm
Я думал, что это легко, но проблема в том, что когда вы рисуете теневой идентификатор, текст имеет значение альфа 0, тень не нарисована. См. Здесь: http://stackoverflow.com/questions/8170678/ios-core-graphics-draw-only-shadows-of-a-cgpath –
Хорошо, я думаю, что есть некоторая недоразумение. Я пытаюсь не использовать CGPath/NSBezierPath, поскольку пути делают текст зазубренным, потому что они сглажены иначе, чем текст. Я работал с использованием bezier-путей, но текст выглядел очень плохо, поэтому я искал лучший метод. – TheCrypticAce