gpt4 book ai didi

cocoa - 以编程方式从 NSStatusItem 隐藏 NSMenu

转载 作者:行者123 更新时间:2023-12-03 16:03:54 26 4
gpt4 key购买 nike

我有一个在系统状态栏中显示一个项目的应用程序,其中一个项目是带有 NSTextField 和 NSButton 的自定义 View 。当用户单击状态栏项目时,它会显示菜单,用户输入一些文本并按下按钮。这会触发显示窗口的操作。

我现在遇到的问题是,当按下按钮时,它确实会触发操作,但菜单仍然可见。我想隐藏菜单,因为该操作已经被处理。

我搜索了 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];

最佳答案

这在 docs 中并不明显,但是 [menu cancelTracking] 就是您想要的。

cancelTracking
Dismisses the menu and ends all menu tracking.
- (void)cancelTracking

关于cocoa - 以编程方式从 NSStatusItem 隐藏 NSMenu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5622866/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com