我有一个Interface Builder NSMenu-Object。我添加了我的自定义类"StatusBarMenu“。
StatusBarMenu.h文件如下所示:
@interface StatusBarMenu : NSMenu <NSMenuDelegate>StatusBarMenu.c文件如下所示:
- (void)menuWillOpen:(NSMenu *)menu {
`NSLog(@"open");`
}该菜单在AppDelegate.c中的分配方式如下:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
self.statusBar = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];
self.statusBar.highlightMode = YES;
[self.statusBar setMenu:self.statusMenu];
}和AppDelegate.h
#import <Cocoa/Cocoa.h>
#import "StatusBarMenu.h"
@interface AppDelegate : NSObject <NSApplicationDelegate>
@property (strong, nonatomic) NSStatusItem *statusBar;
@property (weak) IBOutlet StatusBarMenu *statusMenu;菜单将打开,但不会调用menuWillOpen。我错过什么了吗?
感谢大家的帮助!谢谢。
发布于 2017-02-09 05:31:22
您必须在接口生成器中通过连接(statusMenu > delegate to AppDelegate)或在applicationDidFinishLaunching中的代码中设置委托
self.statusMenu.delegate = self;https://stackoverflow.com/questions/42123905
复制相似问题