Mac OS X状态栏应用程序 - 从Cmd / Alt菜单隐藏它?

时间:2010-06-07 15:29:18

标签: objective-c macos statusbar

我正试图在Obj-C / Cocoa中添加一个简单的小状态栏应用程序。

所以我务实地做了 - 声明一个NSStatusItem,将它添加到NSStatusBar然后给它一个NSMenu对象。有点像这样......

NSStatusBar *bar = [NSStatusBar systemStatusBar];

theItem = [bar statusItemWithLength:NSVariableStatusItemLength];
[theItem retain];

[theItem setTitle: NSLocalizedString(@"Tablet",@"")];
[theItem setHighlightMode:YES];
[theItem setMenu:theMenu];

(取自“状态栏编程主题”,Apple文档)

理想情况下,我希望这个应用程序能够运行,无法从CMD / ALT窗口更改“菜单”(因为缺少更好的单词),我已经看到应用程序之前已经执行过了,并且真的想要这样做。这个想法是我只是希望它可以从每个窗口访问,而在状态栏上没有自己的NSMenu,虽然不能将它作为活动应用程序( - 因此它无法接管整个状态栏,它无法通过CMD / ALT看到

此外,我想知道StatusBarItem是否支持将项目拖放到它上面的能力?我不确定这是否是NSStatusBar的限制。

我已经阅读过deamons和agent,但对于这样一个简单的应用程序来说,这似乎太低了/超级杀![/ p>

提前干杯!

1 个答案:

答案 0 :(得分:1)

LSUIElement键放入应用的info.plist中。要进行拖放操作,请将状态项的视图设置为应该接收丢弃的任何视图,并且从那里开始正常工作。