编辑:这是一个很好的现成的菜单栏应用here(github source)answer。
我想知道如何制作菜单栏应用程序,这样做的要求是什么?
我看到一个简单的菜单栏应用程序是使用您的浏览器打开链接,我想创建类似的东西。
这是我喜欢的类似的应用程序。
答案 0 :(得分:132)
NSStatusItem正是您要找的。还要将字符串值为1的LSUIElement添加到Info.plist中,以将其从Dock中隐藏。
答案 1 :(得分:66)
我发现Codebox's Popup是一个很好的起点。 forking on Github.
已经成熟
虽然效果很好,但他们会在自己的网站上注明......
P上。 S.在Lion中,Apple正在为iOS中的popovers添加一个新类。 因此,在OS X 10.7发布之后,您最好依赖原生 可可类在哪里可行。在其他情况下,Popup项目 应该仍然有用。
答案 2 :(得分:12)
BitBar是GitHub上的一个应用程序,可以“将任何内容放入Mac OS X菜单栏中”。
它运行shell或其他可执行脚本(它调用Plugins - see the many examples in the plugins repo)并在菜单栏中显示结果。您可以编写自己的插件,只需将其添加到“插件文件夹”即可运行。除了显示信息外,它还可以从您定义的插件菜单中以交互方式运行预定义的bash脚本。
自从我第一次发布此答案以来,它的受欢迎程度为exploded(目前有52位贡献者),现在甚至还有一个可分发的版本,您可以使用它来打包自己的插件。
显示实时比特币价格的非常简单(非交互式)示例:
答案 3 :(得分:10)
由于Apple在Yosemite中将NSStatusBarButton
属性添加到NSStatusItem
,我们可以更简单地实现菜单栏应用。我刚刚在github上创建了一个示例项目。
答案 4 :(得分: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];
答案 5 :(得分:0)
Mail Notifr是另一个开源菜单栏应用。它帮了我一堆,特别是当我需要弄清楚如何在登录时实现open。也可在App Store上找到。