在启动时隐藏 macOS 菜单栏中的应用程序图标

4
我正在制作一个macOS的MenuBar应用程序,那么当启动应用程序时,如何隐藏应用程序图标呢?
我没有看到任何地方有解释,也没有找到任何SwiftUI API或与AppDelegate的交互。
2个回答

1

您需要在 Info.plist 中设置以下属性 Application is agent (UIElement)YES

您可以在文档 这里 找到它。

或者您可以手动编辑 Info.plist 并添加以下键:

<key>LSUIElement</key>
<true/>

你可以在这里阅读相关内容。

LSUIElement(布尔值 - macOS)指定应用程序是否作为代理应用程序运行。如果将此键设置为YES,则Launch Services将应用程序作为代理应用程序运行。代理应用程序不会出现在Dock或强制退出窗口中。尽管它们通常作为后台应用程序运行,但如果需要,它们可以前台呈现用户界面。单击属于代理应用程序的窗口会将该应用程序置于前台以处理事件。

Dock和loginwindow是两个作为代理应用程序运行的应用程序。


0

您可以使用Xcode的Info选项卡参数隐藏应用程序的图标。这里是一个示例,展示如何操作。

然而,通过实现以下代码,您可以在编程中自动隐藏应用程序在Dock中的图标。

import SwiftUI

@available(macOS 13.0, *) @main struct YourApp : App {
               
    var body: some Scene {
        let _ = NSApplication.shared.setActivationPolicy(.prohibited)
        
        MenuBarExtra("", systemImage: "apple.logo") {
            Button("Quit") { 
                NSApplication.shared.terminate(nil) 
            }
        }
    } 
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接