Скрыть NSMenu программно из NSStatusItem

У меня есть это приложение, которое показывает элемент в строке состояния системы, и один из элементов является настраиваемым представлением с NSTextField и NSButton. Когда пользователь нажимает на элемент строки состояния, отображается меню, пользователь вводит текст и нажимает кнопку. Это запускает действие, отображающее окно.

Проблема, с которой я столкнулся, заключается в том, что при нажатии кнопки действие запускается, но меню остается видимым. Я хочу скрыть меню, потому что действие уже было обработано.

Я поискал через API, но не нашел, как это сделать.

Есть идеи?

Вот как я ' m создание меню:

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];
11
задан Marcos Crispino 11 April 2011 в 14:34
поделиться