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 выпускает значок