gpt4 book ai didi

c# - 在 Monomac/Xamarin C# 中创建无窗口菜单栏图标应用程序

转载 作者:行者123 更新时间:2023-11-30 14:32:54 25 4
gpt4 key购买 nike

我试图在 MonoMac/Xamarin.Mac 中创建一个没有停靠图标的应用程序,启动时也没有可见窗口,右上角菜单栏中只有一个图标。

我在 Info.plist 中设置了 LSUIElement = 1(尝试了 String 和 Boolean 类型),但是当应用程序启动时状态菜单图标根本不显示。我让它出现的唯一方法是删除 LSUIElement 标志,尽管这样停靠栏图标就会变得可见。

我使用的片段是:

public partial class AppDelegate : NSApplicationDelegate
{
public AppDelegate ()
{
}

public override void FinishedLaunching (NSObject notification)
{
// Construct menu that will be displayed when tray icon is clicked
var notifyMenu = new NSMenu();
var exitMenuItem = new NSMenuItem("Quit",
(a,b) => { System.Environment.Exit(0); }); // Just add 'Quit' command
notifyMenu.AddItem(exitMenuItem);

// Display tray icon in upper-right-hand corner of the screen
var sItem = NSStatusBar.SystemStatusBar.CreateStatusItem(30);
sItem.Menu = notifyMenu;
sItem.Image = NSImage.FromStream(System.IO.File.OpenRead(
NSBundle.MainBundle.ResourcePath + @"/menu_connected.png"));
sItem.HighlightMode = true;

// Remove the system tray icon from upper-right hand corner of the screen
// (works without adjusting the LSUIElement setting in Info.plist)
NSApplication.SharedApplication.ActivationPolicy = NSApplicationActivationPolicy.Accessory;
}
}

有谁知道在 MonoMac 中创建没有停靠栏图标而只有菜单栏图标的无窗口应用程序的好方法吗?

谢谢,

BB

最佳答案

尝试为“主 nib 文件名”指定一个 .xib

我前段时间做过这个,对我来说效果很好。像这样:

  • 新的 monomac 项目
  • 在 C# 中创建了一个“AppController”类:

    [Register("AppController")]
    public partial class AppController : NSObject
    {
    public AppController()
    {

    }

    public override void AwakeFromNib()
    {
    var statusItem = NSStatusBar.SystemStatusBar.CreateStatusItem(30);
    statusItem.Menu = statusMenu;
    statusItem.Image = NSImage.ImageNamed("f3bfd_Untitled-thumb");
    statusItem.HighlightMode = true;
    }
  • 在MainMenu.xib中,我删除了应用程序菜单

  • 在 MainMenu.xib 中,我添加了一个自定义对象并将其类型设置为 AppController
  • 我在 .xib 中创建了我的状态菜单,然后使用 socket 将它连接到 AppController
  • 在 info.plist 中,我将“Application is agent (UIElement)”值作为字符串添加并将其设置为“1”

尝试使用 .xib。如果它不起作用,也许我可以分享我的项目供您拆解。

关于c# - 在 Monomac/Xamarin C# 中创建无窗口菜单栏图标应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17625291/

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