我正在尝试创建一个可可应用程序中的假菜单栏。我已经能够完成我所需要的95%,只是菜单栏与mainMenu不匹配。请看下面的屏幕截图,这是我目前所拥有的。
我在一个xib中使用了一个"Pop Up Button“对象来尝试模拟系统菜单栏。问题是它是一个弹出式菜单,看起来并不完全像mainMenu。此外,标题菜单项不是hilite,并且弹出菜单具有与菜单标题重叠的圆角。很接近了,但没有雪茄。
是否可以在无边框窗口中创建一个与默认系统菜单栏匹配的假菜单栏?如果是这样的话,是怎么做的?
我还尝试使用NSStatusItem,默认情况下,它与系统菜单栏的匹配程度比我用按钮实现的效果更接近,但我无法将NSStatusItem嵌入到窗口中。
理想情况下,如果有一种方法可以将NSMenu直接嵌入到窗口视图中,那将是最好的解决方案。


发布于 2012-04-20 06:50:01
您需要创建一个外观和行为都与顶级项目相似的自定义按钮或视图,然后为视图的menu插座分配一个NSMenu。
然后,您可以在视图中实现menuForEvent:并在鼠标按下时返回菜单,或者在单击鼠标时调用NSMenu类方法+popUpContextMenu:withEvent:forView:。
顺便说一句,这似乎是一个有点奇怪的想法。你为什么想做这件事?
https://stackoverflow.com/questions/10234812
复制相似问题