0

我正在尝试在可可应用程序中创建一个假菜单栏。我已经能够完成我需要的 95%,只是菜单栏与 mainMenu 不匹配。请参阅下面我目前所拥有的屏幕截图。

我在 xib 中使用“弹出按钮”对象来尝试模拟系统菜单栏。问题是它是一个弹出菜单,看起来与主菜单不完全一样。此外,标题菜单项不隐藏,并且弹出菜单具有与菜单标题重叠的圆角。所以,它很接近,但没有雪茄。

是否可以在与默认系统菜单栏匹配的无边框窗口内创建一个假菜单栏?如果是这样,怎么做?

我还尝试使用 NSStatusItem,默认情况下,它与系统菜单栏的匹配比我使用按钮能够完成的更接近,但我无法将 NSStatusItem 嵌入到窗口中。

理想情况下,如果有办法将 NSMenu 直接嵌入到 Windows 视图中,那将是最好的解决方案。

假菜单栏

假菜单栏

4

1 回答 1

1

您需要创建一个外观和行为类似于顶级项目的自定义按钮或视图,然后将 an 分配NSMenu给视图的menu出口。

然后,您可以menuForEvent:在视图中实现并在鼠标按下时返回菜单,或者在单击鼠标时调用NSMenu类方法+popUpContextMenu:withEvent:forView:

顺便说一句,这似乎是一个有点奇怪的想法。你为什么要这样做?

于 2012-04-19T22:50:01.137 回答