首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自NSStatusitem的NSTextField

来自NSStatusitem的NSTextField
EN

Stack Overflow用户
提问于 2012-08-26 08:45:02
回答 1查看 239关注 0票数 0

有没有办法在用户单击状态栏中的NSStatusitem时显示NSPopover?

到目前为止,在我的头文件中,我有以下内容:

代码语言:javascript
复制
IBOutlet NSStatusItem *statusitem;

还有这个:

代码语言:javascript
复制
@property (assign) IBOutlet NSPopover *pop;

在该方法下,我有以下内容:

代码语言:javascript
复制
[[NSImage imageNamed:@"mic.png"]setSize:NSMakeSize(20,20)];
statusitem = [[NSStatusBar systemStatusBar]statusItemWithLength:NSVariableStatusItemLength];
[statusitem setHighlightMode:YES];
[statusitem setImage:[NSImage imageNamed:@"mic.png"]];
[statusitem setMenu:menu];
[statusitem setAction:@selector(pop:)]

代码语言:javascript
复制
- (void)pop:(id)sender{
[[self pop]showRelativeToRect:[sender bounds] ofView:sender preferredEdge:NSMaxXEdge];
}

有没有办法让这件事起作用呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-26 13:08:24

这几乎是正确的。您statusItem属性应该是retain,而不是IBOutlet,因为您是在代码中创建它。此外,状态项不能同时具有菜单和操作--如果有菜单,则在单击状态项时将打开该菜单,而不是触发操作方法。因此,如果您进行了这些更改,并且在IB中设置了popover,这应该会起作用。

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

https://stackoverflow.com/questions/12126836

复制
相关文章

相似问题

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