NSBezierPath: ход с 2 или 3 цветами

Я пытаюсь воссоздать меню, которое выглядит как контекстное меню Dock.

Я рисую фон, используя NSBezierPath, Как вы можете видеть, граница меню Dock имеет 3 полупрозрачных цвета на границе.

Изнутри наружу:

  • HSB 0; 0; 7% Op 91% (черный) 1px ширина
  • HSB 0;0;53% Op 38% (серый) 2px ширина
  • HSB 0;0;0 Op 41% (черный) 1px ширина

Как я мог нарисовать эти границы для моего NSBezierPath?

PS: используя шаблон ([NSColor colorWithPatternImage:]) не работает.

1 ответ

Пути - это просто геометрия. У них нет цвета. Цвет является частью графического контекста и влияет на операции обводки или заливки.

Так что, да, один из вариантов - обводить несколько путей вместо одного.

Другой возможный подход заключается в использовании NSDrawNinePartImage() с предварительно отрендеренными изображениями (растровые или векторные /PDF).

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