我现在有针对在awakeFromNib
这样初始化的状态栏的NSStatusItem
:实施NSPopover上NSStatusItem
statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];
[statusItem setMenu:statusMenu];
[statusItem setImage:statusImage];
[statusItem setAlternateImage:statusHighlightedImage];
[statusItem setHighlightMode:YES];
[statusItem setTarget:self];
我有一个NSMenu
点击图标时打开。其中一个选项被点击后,应该从状态栏图标打开NSPopover
。要做到这一点,我有这样的代码,它通过接口生成器连接到菜单项:
- (IBAction)prefs:(id)sender {
NSRectEdge prefEdge = NSMaxYEdge;
[[self pop] showRelativeToRect:[[statusItem view] bounds]
ofView:[statusItem view]
preferredEdge:prefEdge];
}
然而,当我单击要打开酥料饼的菜单项,没有任何反应。有什么特别的原因可能会导致这种情况?据我所知,应该可以做到。
在此先感谢。我通过堆栈溢出来查看最好的,但如果有一个真正重复的问题,请把我连接到它。
供参考:该statusItem
变量是NSStatusItem
。
您应该添加的代码为'NSMenu' – NSAddict
那是'-prefs:'方法获取调用? '[self pop]'和'[statusItem view]'是否为非零? – paulmelnikow
@noa是对的,尝试记录一些内容,并检查'self.pop'是否返回'nil'。 – NSAddict