Menubar App - это правильно? - PullRequest
3 голосов
/ 13 марта 2011

Я пытаюсь создать приложение, которое, когда главное окно не видно, показывает значок в строке меню.Тем не менее, я не уверен насчет этого кода и все ли в порядке.Я не получаю никаких ошибок и предупреждений, но после нескольких переключений приложения назад и вперед между моим приложением и другим, например.В 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];
}

Ответы [ 2 ]

2 голосов
/ 13 марта 2011

Я просто заменил [statusItem release];с [[NSStatusBar systemStatusBar] removeStatusItem: statusItem];и это сработало.Я не хочу полностью выпускать это, поскольку мне все еще нужно это, если пользователь переключает приложения позже.Спасибо @Kevin Ballard за это!:)

2 голосов
/ 13 марта 2011

Если приложение вылетает, когда вы отпускаете переменную statusItem, есть вероятность, что присвоенный атрибут menu будет перевыпущен. Я не уверен в этом, так как не знаю, откуда взята theMenu переменная.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...