有没有办法自定义NSMenu外观,例如,它的透明度,背景颜色或前景色使用公共API“S(如Apple的Dock右键菜单)??
经过大量搜索,我发现了一些代码,他们使用私有API来使菜单变暗!
答案 0 :(得分:2)
我认为如果您只使用自定义视图,您可以获得更好的运气,您可以根据自己的需要进行查看并按照菜单操作。 Apple提供了一个示例项目CustomMenus,该项目说明了该技术。它是WWDC 2010 session videos,Session 145, "Key Event Handling in Cocoa Applications"之一的伴侣。
答案 1 :(得分:1)
不确定您是否决定采用自己绘制视图的解决方案,但有一个私有API可用于执行此操作:
MenuRef m = [[menu _menuImpl] _principalMenuRef];
if (m) {
char on = 1;
SetMenuItemProperty(m, 0, 'dock', 'dark', 1, &on);
}
实现此功能的Github project基本上作为NSMenu
上的插入式类别工作,并允许使用单个属性进行变暗。
这绝对是一个 bad idea™,因为它使用的私有API可能会或可能不会破坏未来的操作系统更新,但它似乎是停靠菜单的工作方式。强>