NSStatusItem отвечает только после двойного нажатия

У меня есть приложение OSX с собственным окном в дополнение к значку, показанному в NSStatusBar. Причиной NSStatusBar является включение приложения в фоновом режиме при закрытии главного окна. При попытке щелкнуть значок строки состояния, мне нужно дважды щелкнуть, прежде чем я получу ответ (отображается всплывающее окно). Я хотел бы нажать один раз и получить немедленный ответ. NStatusBar настроен так:

NSStatusItem *statusItem = [[NSStatusBar systemStatusBar]statusItemWithLength:32];
        statusItemView = [[SDStatusItemView alloc] initWithStatusItem:statusItem];
        statusItemView.image = [NSImage imageNamed:@"myLogo"];
        statusItemView.alternateImage = [NSImage imageNamed:@"myLogo"];
        statusItemView.target=self;
        statusItemView.action = @selector(togglePanel:);

        [self.statusItemView.window setIgnoresMouseEvents:NO];
        [self.statusItemView.window setAcceptsMouseMovedEvents:YES];

Мой statusItemView (подкласс NSView) настраивается с помощью:

-(BOOL) acceptsFirstResponder{
    return YES;
}

- (BOOL)canBecomeKeyWindow
{
    return YES;
}

Все работает хорошо, за исключением того, что мне нужно дважды щелкнуть значок в строке состояния, прежде чем я получу ответ. Я гуглил это и нашел похожие вопросы, как этот, но ничего, что решило мою проблему. Любая помощь будет принята с благодарностью. Благодарю. T

Обновление: я закончил тем, что создал свой StatusItem, используя превосходную библиотеку CCNStatusItem

1 ответ

Решение

Вы не можете реально влиять на окно меню. Используйте пользовательский NSView для вашего элемента статуса.

см. ответ с отрицательным результатом здесь: NSStatusItem выпускает значок

Другие вопросы по тегам