gpt4 book ai didi

cocoa - 为什么 NSMenu 的子类没有响应?

转载 作者:行者123 更新时间:2023-12-03 18:01:15 24 4
gpt4 key购买 nike

我在单独的 xib 文件中创建了一个菜单资源,使其成为 NSMenu 的子类,如下所示,并将文件的所有者设为 StatusMenu

@interface StatusMenu : NSMenu
{
@private
IBOutlet NSMenuItem *menuitem1;
IBOutlet NSMenuItem *menuitem2;
}

- (IBAction)action1:(id)sender;
- (IBAction)action2:(id)sender;
- (void)show;
@end

其中show方法的实现方式如下

- (void)show
{
NSImage *menuImage = [[NSImage alloc] initWithContentsOfFile: [[NSBundle mainBundle] pathForResource:@"myicon" ofType:@"png"]];

statusItem = [[[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength] retain];
[statusItem setImage:menuImage];
[statusItem setMenu:self];
[statusItem setHighlightMode:YES];
}

然后我在应用程序委托(delegate)中创建并启动了 StatusMenu 实例,如下所示

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
statusMenu = [[StatusMenu alloc] init];
statusMenu.user = self.user;
[statusMenu show];
}

现在,我可以在状态栏上看到该图标。但是当我点击该图标时,没有任何反应。可能出什么问题了?

最佳答案

您通常不会子类化 NSMenu 来执行您想要执行的操作。

您可以简单地创建另一个类(将其称为MenuController或其他名称),将其放入您的 Storyboard/xib中,并在您的AppDelegate中为其提供一个导出。

Here`s a sample project for you to check out .

关于cocoa - 为什么 NSMenu 的子类没有响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6220500/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com