有没有办法在用户单击状态栏中的NSStatusitem时显示NSPopover?
到目前为止,在我的头文件中,我有以下内容:
IBOutlet NSStatusItem *statusitem;还有这个:
@property (assign) IBOutlet NSPopover *pop;在该方法下,我有以下内容:
[[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:)]和
- (void)pop:(id)sender{
[[self pop]showRelativeToRect:[sender bounds] ofView:sender preferredEdge:NSMaxXEdge];
}有没有办法让这件事起作用呢?
发布于 2012-08-26 13:08:24
这几乎是正确的。您statusItem属性应该是retain,而不是IBOutlet,因为您是在代码中创建它。此外,状态项不能同时具有菜单和操作--如果有菜单,则在单击状态项时将打开该菜单,而不是触发操作方法。因此,如果您进行了这些更改,并且在IB中设置了popover,这应该会起作用。
https://stackoverflow.com/questions/12126836
复制相似问题