首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSMenu委托未触发menuWillOpen

NSMenu委托未触发menuWillOpen
EN

Stack Overflow用户
提问于 2017-02-09 05:26:07
回答 1查看 431关注 0票数 0

我有一个Interface Builder NSMenu-Object。我添加了我的自定义类"StatusBarMenu“。

StatusBarMenu.h文件如下所示:

代码语言:javascript
复制
@interface StatusBarMenu : NSMenu <NSMenuDelegate>

StatusBarMenu.c文件如下所示:

代码语言:javascript
复制
- (void)menuWillOpen:(NSMenu *)menu {
    `NSLog(@"open");`
}

该菜单在AppDelegate.c中的分配方式如下:

代码语言:javascript
复制
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    self.statusBar = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];
    self.statusBar.highlightMode = YES;
    [self.statusBar setMenu:self.statusMenu];
}

AppDelegate.h

代码语言:javascript
复制
#import <Cocoa/Cocoa.h>
#import "StatusBarMenu.h"
@interface AppDelegate : NSObject <NSApplicationDelegate>
@property (strong, nonatomic) NSStatusItem *statusBar;
@property (weak) IBOutlet StatusBarMenu *statusMenu;

菜单将打开,但不会调用menuWillOpen。我错过什么了吗?

感谢大家的帮助!谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-09 05:31:22

您必须在接口生成器中通过连接(statusMenu > delegate to AppDelegate)或在applicationDidFinishLaunching中的代码中设置委托

代码语言:javascript
复制
self.statusMenu.delegate = self;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42123905

复制
相关文章

相似问题

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