首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSMenu未开始跟踪

NSMenu未开始跟踪
EN

Stack Overflow用户
提问于 2010-05-16 19:04:48
回答 1查看 532关注 0票数 2

我有一个小的可可应用程序,通常在后台运行(作为代理)。有时我希望能够弹出一个上下文菜单(没有窗口或s.th。此时可见)。

由于我只针对Snow Leopard,所以我尝试了这个:

代码语言:javascript
复制
if (windows) {
       NSMenu *theMenu = [[[NSMenu alloc] initWithTitle:@"test"] autorelease];
       [theMenu setShowsStateColumn:NO];
       [theMenu setAutoenablesItems:NO];

           for (id item in windows) {

               NSString *labelText = @"some text";

               NSMenuItem *theMenuItem = [[[NSMenuItem alloc] initWithTitle:labelText
                                             action:@selector(menuItemSelected:)
                                               keyEquivalent:@""] autorelease]; 

               [theMenuItem setTarget:self];
               [theMenuItem setRepresentedObject:item];
               [theMenuItem setEnabled:YES];
               [theMenuItem setImage:icon];
               [theMenu addItem:theMenuItem];
           }

       [theMenu popUpMenuPositioningItem:nil atLocation:[NSEvent mouseLocation] inView:nil];

 }

菜单弹出得很完美,但如果我用鼠标光标悬停这些项目,它们不会突出显示,也无法单击它们。

menuItemSelected:方法如下所示:

代码语言:javascript
复制
-(IBAction)menuItemSelected:(id)sender {

}

知道我做错了什么吗?

EN

回答 1

Stack Overflow用户

发布于 2010-05-22 08:52:58

我怀疑窗口系统不会将您的应用程序视为活动的,因此不会将鼠标事件发送到您创建的菜单。

作为实验,尝试在弹出菜单之前创建一个虚拟窗口。我会创建一个风格为NSNonActivatingPanelMaskNSPanelmakeKeyAndOrderFront:你的窗口/面板,然后弹出菜单,看看发生了什么。

如果这行得通,我会坚持这种方法,并隐藏窗口。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2843459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档