У меня есть это приложение, которое показывает элемент в строке состояния системы, а один из элементов - это пользовательское представление с NSTextField и NSButton. Когда пользователь нажимает на элемент строки состояния, он показывает меню, пользователь вводит текст и нажимает кнопку. Это вызывает действие, которое отображает окно.
Проблема, с которой я столкнулась сейчас, - это когда кнопка нажата, она вызывает действие, но меню остается видимым. Я хочу скрыть меню, потому что действие уже обработано.
Я искал API, но не смог найти, как это сделать.
Любые идеи?
Вот как я создаю меню:
NSStatusBar *bar = [NSStatusBar systemStatusBar];
self.statusItem = [bar statusItemWithLength:NSVariableStatusItemLength];
[statusItem setImage:[NSImage imageNamed:@"icon_status_bar.png"]];
[statusItem setHighlightMode:YES];
NSMenuItem *textInputItem = [[NSMenuItem alloc] initWithTitle:@"" action:nil keyEquivalent:@""];
[textInputItem setView:myCustomView]; // created on the Nib file...
NSMenu *menu = [[NSMenu alloc] initWithTitle:NSLocalizedString(@"statusBarMenuTitle", @"")];
[menu addItem:textInputItem];
[statusItem setMenu:menu];
[textInputItem release];
[menu release];