【问题标题】:NSBezierPath : Stroke with 2 or 3 colorsNSBezierPath : 用 2 或 3 种颜色描边
【发布时间】:2013-03-31 02:19:47
【问题描述】:

我正在尝试重新创建一个类似于 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:]) 不起作用。

【问题讨论】:

  • 与其尝试用 3 种颜色描边 1 条贝塞尔路径,为什么不使用 3 条贝塞尔路径,并将它们用作 NSWindow 上的剪贴蒙版?此外,这可能是相关的:stackoverflow.com/questions/15379410/…。 NSMenu 已经包含了对 dark menu 的私人支持,就像您正在寻找的那样。
  • 你的黑暗菜单是件好事。你认为有可能得到像在码头一样的箭头吗?

标签: objective-c cocoa nsbezierpath


【解决方案1】:

路径只是几何图形。它们没有颜色。颜色是图形上下文的一部分,会影响描边或填充操作。

所以,是的,一种选择是绘制多条路径而不是一条。

另一种可能的方法是将NSDrawNinePartImage() 与预渲染图像(位图或矢量/PDF)一起使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-11
    • 2017-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-22
    • 1970-01-01
    相关资源
    最近更新 更多