实现自定义绘制的 NSMenuItem 视图的直接方法

Straightforward way to implement custom drawn NSMenuItem views

我想要一个包含几个 NSMenuItemNSMenu。这些项目的行为应与 "normal" NSMenuItems 相同,但有一个例外:我希望能够绘制 contents(即 "foreground" ) 我自己的每一项。

即:

我知道(强烈怀疑)我的愿望可能太多了,但如果有足够的东西我会非常满意(例如,我可以想象自己从 NSMenuItem 中获取 NSRect,使用 [NSColor selectedMenuItemTextColor] 之类的方法获取颜色,使用 [NSContext currentContext]).

之类的方法获取上下文

当然考虑过Apple's instruction on this。但是,这样做会阻止菜单绘制蓝色高亮背景和复选标记。此外,据我所知,我将不得不实施例如mouseUp我自己。

总结一下:有没有办法获得(几乎)全功能菜单,我只自定义菜单项标题通常所在的内容(甚至可能没有自定义视图)?

答案是:没有

由于您要替换菜单项的整个视图,因此您要负责绘图和处理事件。