gpt4 book ai didi

objective-c - 如何隐藏 Cocoa 应用程序中的菜单栏?

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

如何以编程方式隐藏 cocoa 应用程序中的菜单栏?我想充分利用屏幕区域。

最佳答案

我知道有两种好方法可以做到这一点。

1在Cocoa中,你可以调用NSMenu类方法setMenuBarVisible:来显示或隐藏菜单栏。

截至撰写本文时,NSMenu 类的文档并未告诉您以下附加信息。

只有调用此方法的应用程序才会隐藏菜单栏。Dock会同时隐藏。

(至少在 10.9 中是这样,我还没有测试过任何其他版本。)

当您想要以全屏方式使用应用程序(其中有一个覆盖窗口、一个与屏幕大小相同的无边框窗口)时,这非常有用。这样做的一个很好的功能(与使用 LSUIElement 设置相反)是您的应用程序可以继续处于应用程序切换器循环中,并且当其他应用程序处于事件状态时在 Dock 中可见。这允许用户仍然通过 Dock 或应用程序切换器激活全屏应用程序。这意味着您仍然可以使用应用程序的 Dock 菜单来访问应用程序或其他功能的首选项窗口。如果您的应用程序确实是一个全屏覆盖窗口,并且在比其他应用程序更高的窗口级别上运行,但您仍然希望使首选项和退出应用程序的功能可用,并且您希望应用程序的视觉功能在以下情况下可用,那么这非常方便:其他应用程序处于事件状态。

2另一种选择是通过 NSApplication 的方法 setPresentationOptions: 以及来自 NSApplicationPresentationOptions 枚举的参数,例如选项 NSApplicationPresentationHideMenuBar使用这种方法时,请务必谨慎阅读文档,尽管它为您提供了其他选项,并且仍然仅特定于应用程序,但您需要知道某些选项是相互排斥的。您必须遵守一些规则,否则除了向控制台喷出异常之外,您什么也得不到。

3 还有第三个蹩脚的选项。如果您有一个作为守护程序的帮助程序应用程序,则可以使用它来更改应用程序的 LSUIElement 状态并基本上重新启动您的应用程序。它很愚蠢,它会让你完全脱离应用程序切换器,如果你真的在写一些不应该出现的东西,这很好,但这种情况很少见。

关于objective-c - 如何隐藏 Cocoa 应用程序中的菜单栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20779927/

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