2010-03-23 2 views
1

Как я могу нарисовать небольшое «свечение» вокруг кнопки или метки в 10.5 и более поздних версиях? Я видел, как некоторые приложения делают это, но я все еще смущен тем, как я должен это делать.Glow around Button

+2

можете ли вы указать нам на скриншот, чтобы знать, что вы имеете в виду? –

+0

Вы имеете в виду кольцо фокусировки? –

+0

Я не могу получить экранный снимок, но я имею в виду что-то вроде внешнего свечения Photoshop на кнопке в белом цвете, которое происходит под фактической кнопкой, а затем медленно исчезает. –

ответ

4

См. NSShadow. У вас будет create and set a shadow (saving your graphics context beforehand), затем нарисуйте основную форму вашей кнопки, отмените ее (восстановив графический контекст), затем продолжите рисование, как обычно.

В случае готового элемента управления, такого как NSButton, вам необходимо будет subclass and override its cell drawing (и, возможно, сделать сам контроллер NSButton немного больше, чтобы разместить большую область, необходимую для охвата «свечения» ячейки).

Вы могли быть в состоянии избежать этого с ярлыком, установив его шрифта тень, но я не думаю, что IB позволяет сделать это, так что вы бы программно дать метку в приписываемую строку (через его -setAttributedString : метод). Атрибуты будут включать NSShadow (настроенный по желанию) как имя NSShadowAttributeName.