gpt4 book ai didi

c# - 在 Mac 上使用 C#/Mono 的仅系统托盘(无停靠图标)应用程序

转载 作者:可可西里 更新时间:2023-11-01 07:47:18 24 4
gpt4 key购买 nike

我希望将我的一个 C# 应用程序转移到 Mono 以便在 Mac 上使用。目前,我正在尝试弄清楚如何使它成为一种“后台”进程,但仍然具有 GUI 元素的能力(我相信这排除了 mono-service)。

最终目标是这样的:

  1. 在大多数交互中按时钟放置一个托盘图标。
  2. 删除启动的应用程序通常附带的停靠栏图标
  3. 让应用程序在启动时运行。

简而言之,想想Dropbox应用程序工作。我想要那种类型的 GUI,但带有 Mono/Mac 应用程序。

我相信这通常是通过在应用程序包的 Info.plist 中设置 LSUIElement = 1 来实现的。但是,我没有运气。我认为这可能与从应用程序包中启动我的应用程序的 mono 命令有关。一旦应用程序启动 mono 我假设它不会级联到进一步的应用程序启动。不过,这纯属猜测。

有没有人对此有任何想法?谢谢。

最佳答案

我有你的答案:

首先,添加一个状态栏图标(替代 Win Forms 中的通知图标):

        NSStatusItem sItem = NSStatusBar.SystemStatusBar.CreateStatusItem(30);
sItem.Menu = notifyMenu;
sItem.Image = NSImage.FromStream(System.IO.File.OpenRead(NSBundle.MainBundle.ResourcePath + @"/notify-icon.icns"));
sItem.HighlightMode = true;

notifyMenu 是您的 NSMenu 实例,作为通知图标的上下文菜单条的一种方式。

并将使用 Icon Composer 制作的 ICNS 文件放入您的项目文件中,并将其标记为内容。 (右击->构建 Action ->内容)

现在是时候删除停靠栏图标了:

在您的 info.plist 文件中。创建一个新的Boolean 类型项并将其命名为“LSUIElement”并将值设置为YES

希望对您有所帮助。问候,佩曼莫塔扎维

关于c# - 在 Mac 上使用 C#/Mono 的仅系统托盘(无停靠图标)应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4414629/

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