【发布时间】:2011-04-11 14:34:35
【问题描述】:
我有一个在系统状态栏中显示项目的应用程序,其中一个项目是带有 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];
【问题讨论】: