好的,我用AppleScript创建了一个小实用工具,并使用Automator将其转换为应用程序(MyApp.app)。我想创建一个菜单栏项(菜单项,菜单附加),只需单击它即可启动MyApp.app。
我知道我需要在/ System / Library / CoreServices / Menu Extras文件夹中创建某种.menu文件。
我有Xcode设置,但不确定我需要从哪里开始。我所有的谷歌搜索都显示了如何在Menu Extras文件夹中添加和删除现有的菜单。
任何提示,技巧,教程或代码均值得赞赏!
编辑:我不想从小脚本菜单栏项目运行AppleScript ...我想要一个单独的菜单栏项目来启动应用程序。
编辑:我说的是右上角的菜单栏,而不是Dock。
编辑:我希望能够为应用程序创建快捷方式或快速启动按钮,这样只需单击菜单栏中的图标即可启动应用程序。我不想要或不需要与菜单栏项关联的任何下拉菜单...一键=启动应用程序。
答案 0 :(得分:1)
您正在寻找状态项 - 请参阅Status Bar Programming Topics。可以找到较旧的(Xcode 3,但没有多少)教程here。
答案 1 :(得分:1)
循序渐进:
Application is agent (UIElement)
文件YES
设为info.plist
statusMenu
)连接到您的主应用代表Status Bar Menu
文件中设置AppDelegate.m
,如下所示:- (BOOL)isAppSetToRunAtLogon {
int ret = [UKLoginItemRegistry indexForLoginItemWithPath:[[NSBundle mainBundle] bundlePath]];
return (ret >= 0);
}
- (void) runAtLogon
{
[UKLoginItemRegistry addLoginItemWithPath:[[NSBundle mainBundle] bundlePath] hideIt: NO];
}
- (void) removeFromLogon
{
[UKLoginItemRegistry removeLoginItemWithPath:[[NSBundle mainBundle] bundlePath]];
}
-(void)awakeFromNib {
if (![self isAppSetToRunAtLogon])
{
[self runAtLogon];
}
statusItem = [[[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength] retain];
[statusItem setMenu:statusMenu];
NSImage* statusImage = [[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"YOUR_STATUS_MENU_ICON" ofType:@"icns"]];
[statusImage setSize:NSMakeSize(20, 20)];
[statusItem setImage:[statusImage retain]];
[statusItem setHighlightMode:YES];
}
而且......就是这样! : - )