0

ユーザーがステータスバーの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];
}

これを機能させる方法はありますか?

4

1 に答える 1

1

それは正解にかなり近いです。statusItemプロパティは、コードで作成しているため、IBOutletではなく保持する必要があります。また、ステータスアイテムにメニューとアクションの両方を設定することはできません。メニューがある場合は、アクションメソッドを起動するのではなく、ステータスアイテムをクリックするとメニューが開きます。したがって、これらの変更を行い、IBでポップオーバーを設定している場合、これは機能するはずです。

于 2012-08-26T05:08:23.587 に答える