cocoa - 自定义 NSMenu 突出显示颜色而不使用自定义 View

标签 cocoa nsmenu nsmenuitem

是否有任何简单的方法可以更改标准 NSMenu 的突出显示栏颜色,而无需为每个条目创建自定义 View ?

我想要的只是能够将蓝色突出显示颜色更改为我在标准 NSMenuItems 上选择的颜色。我不需要自定义 View ,并且希望避免仅仅为了更改突出显示颜色而重新实现简单的菜单。

最佳答案

只是回答我自己的问题,以便其他人知道我发现了什么。

无法更改标准菜单项的突出显示,因为系统在幕后做了一些技巧来绘制菜单项使用的渐变填充。

本质上,突出显示颜色被设置为正常颜色,然后系统用实际渐变而不是纯色替换“突出显示颜色”。

进行自定义突出显示的唯一真正方法是创建一个基于 View 的菜单并自己完成所有绘图。

关于cocoa - 自定义 NSMenu 突出显示颜色而不使用自定义 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20822927/

相关文章:

cocoa - 如何动态调整 NSMenu 的大小以适应其内容?

c - 学习核心基础

cocoa - 如何将 NSView 上的点击传递到其下方的应用程序窗口?

objective-c - 从给定的 NSColor 生成 NSGradient

swift - 如何在 NSMenu 中放置水平 slider (Swift 3、Xcode 8)

Swift:10.10 中的 NSStatusItem 菜单行为(例如,仅在鼠标右键单击时显示)

cocoa - NSMenu 中的替代菜单项

cocoa - 以编程方式创建的 NSMenu 仅显示第一项

objective-c - 将 NSButton 的操作设置为与 NSMenuItem 的操作相同

cocoa - 当启用多选时,NSCollectionView 在拖动之前出现烦人的延迟