gpt4 book ai didi

macos - 如何在无边框窗口中嵌入 NSMenu 以创建假菜单栏

转载 作者:行者123 更新时间:2023-12-03 17:58:17 25 4
gpt4 key购买 nike

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

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

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

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

理想情况下,如果有一种方法可以将 NSMenu 直接嵌入到 Windows View 中,那将是最好的解决方案。

fakemenubar

fakemenubar

最佳答案

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

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

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

关于macos - 如何在无边框窗口中嵌入 NSMenu 以创建假菜单栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10234812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com