177

编辑:这是一个很好的现成菜单栏应用程序(github 源),由这个答案


我想知道如何制作菜单栏应用程序,这样做有什么要求?

我看到一个简单的菜单栏应用程序是使用浏览器打开链接,我想创建类似的东西。

在此处输入图像描述

这是我喜欢制作类似的应用程序。

4

6 回答 6

133

NSStatusItem是您正在寻找的。还将字符串值为 1 的 LSUIElement 添加到 Info.plist 以将其隐藏在 Dock 中。

于 2010-08-04T21:43:22.137 回答
66

我发现Codebox 的 Popup是一个很好的起点。在 Github 上分叉的时机已经成熟。

在此处输入图像描述

虽然效果很好,但他们确实在他们的网站上注明...

PS 在 Lion 中,Apple 正在为类似 iOS 的弹出框添加一个新类。因此,在 OS X 10.7 发布后,您最好尽可能依赖原生 Cocoa 类。在其他情况下,Popup 项目应该仍然可用。

于 2011-07-26T18:36:44.630 回答
14

BitBarGitHub 上的一个应用程序,它可以“将任何东西放在你的 Mac OS X 菜单栏中”。

它运行 shell 或其他可执行脚本(它称为插件 - 请参阅插件 repo 中的许多示例)并在菜单栏中显示结果。您可以编写自己的插件,只需将其添加到“插件文件夹”即可运行。除了显示信息外,它还可以从您定义的插件菜单交互地运行预定义的 bash 脚本。

自从我第一次发布这个答案以来,它的受欢迎程度已经爆炸式增长(目前有 52 个贡献者),现在甚至还有一个可分发的版本,您可以使用它来打包自己的插件。

显示实时比特币价格的一个非常简单(非交互式)的示例:

在此处输入图像描述

于 2015-06-02T17:28:46.077 回答
10

由于 Apple 在 Yosemite 中添加了NSStatusBarButton属性NSStatusItem,我们可以更简单地实现菜单栏应用程序。我刚刚在 github 上创建了一个示例项目。

https://github.com/taichino/PopupTest

于 2015-03-30T05:51:57.050 回答
2

FlyCut是另一个很好的开源应用程序。(麻省理工学院许可。)也非常方便,我每天使用几次。

下面是一些看起来可能相关的代码:

    // Flycut/AppController.h
    IBOutlet NSMenu *jcMenu;

    // Flycut/AppController.m
    statusItem = [[[NSStatusBar systemStatusBar]
            statusItemWithLength:NSVariableStatusItemLength] retain];
    [statusItem setHighlightMode:YES];

    if ( [[DBUserDefaults standardUserDefaults] integerForKey:@"menuIcon"] == 1 ) {
        [statusItem setTitle:[NSString stringWithFormat:@"%C",0x2704]]; 
    } else if ( [[DBUserDefaults standardUserDefaults] integerForKey:@"menuIcon"] == 2 ) {
        [statusItem setTitle:[NSString stringWithFormat:@"%C",0x2702]]; 
    } else {
        [statusItem setImage:[NSImage imageNamed:@"com.generalarcade.flycut.16.png"]];
    }
    [statusItem setMenu:jcMenu];
    [statusItem setEnabled:YES];
于 2014-02-10T16:54:31.987 回答
0

Mail Notifr是另一个开源的菜单栏应用程序。它帮助了我很多,尤其是当我需要弄清楚如何实现登录时打开时。也可在App Store上找到。

于 2015-06-07T09:50:14.440 回答