0
인터페이스 작성기 NSMenu-Object가 있습니다. 내 사용자 정의 클래스 "StatusBarMenu"를 추가했습니다.NSMenu 대리자가 menuWillOpen을 트리거하지 않습니다.
StatusBarMenu.h
파일은 다음과 같습니다 :
StatusBarMenu.c
파일은 다음과 같습니다
@interface StatusBarMenu : NSMenu <NSMenuDelegate>
:
- (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이 호출되지 않습니다. 나는 무엇이 있 었는가?
감사합니다. 감사합니다. .
덕분에 코드의 연결 (
AppDelegate
에statusMenu
>delegate
) 또는하여 인터페이스 빌더에서 중, 대리인을 설정해야합니다. 이것은 트릭을했다! –