我正在尝试创建一个应用程序,当主窗口不可见时,会在菜单栏中显示一个图标。但是,我不确定这个代码是否正常。我没有错误也没有警告,但是在我的应用程序和其他应用程序之间来回切换几个应用程序后,例如。 Twitter或Safari我得到了
收到信号: “EXC_BAD_ACCESS”。
这是我的代码:
- (void)applicationDidResignActive:(NSNotification*)aNotification
{
statusItem = [[[NSStatusBar systemStatusBar]
statusItemWithLength:NSVariableStatusItemLength]
retain];
[statusItem setHighlightMode:YES];
[statusItem setEnabled:YES];
//Set menubar item's tooltip
[statusItem setToolTip:@"Nucleus"];
[statusItem setMenu:theMenu];
//Set the menubar item's title
[statusItem setTitle:[NSString stringWithString:@"N"]];
}
- (void)applicationDidBecomeActive:(NSNotification*)aNotification
{
[statusItem release];
}
答案 0 :(得分:2)
如果应用程序在您发布statusItem
变量时崩溃,则分配的menu
属性被过度释放的可能性很大。我不确定这个,因为我不知道theMenu
变量来自哪里。
答案 1 :(得分:2)
我只是替换了[statusItem release]; [[NSStatusBar systemStatusBar] removeStatusItem:statusItem];这是一种享受。我不想完全释放它,因为我仍然需要它,以防用户稍后切换应用程序。感谢@Kevin Ballard! :)