我有这个应用程序在系统的状态栏中显示一个项目,其中一个项目是一个带有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];
Run Code Online (Sandbox Code Playgroud)
Nic*_*ore 30
它在文档中并不明显,但却[menu cancelTracking]是你想要的.
cancelTracking
Dismisses the menu and ends all menu tracking.
- (void)cancelTracking
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3601 次 |
| 最近记录: |