NSMenuItems의 동적 번호를 상태 표시 줄 응용 프로그램에 넣으려고합니다. 지금은 awakeFromNib
에있는 목록을 읽고 있습니다. 그러나 이것은 단 한 번 발생합니다.
응용 프로그램이 실행되는 동안 NSMenuItems를 다시 작성하려면 어떻게해야합니까?
-(void)menuNeedsUpdate:(NSMenu *)menu
과 같이 발생해야합니까?
누군가 나에게 올바른 방향으로 밀어 주시겠습니까.상태 표시 줄에 NSMenuItems를 다시 작성하십시오.
답변
한번에과 같이 헤더 파일에 NSMenuDelegate
합니다 (.H 파일) 설정 :
#import <Cocoa/Cocoa.h>
@interface AppDelegate : NSObject <NSApplicationDelegate,NSMenuDelegate>{
}
(또는 선택기를 호출 할 필요가있는 클래스의 헤더 파일)
– addItem:
– removeItem:
방법을 사용하십시오.
NSMenuItem *test = [[NSMenuItem alloc] initWithTitle:@"test" action:@selector(test) keyEquivalent:@"a"];
[[StatusItem menu] addItem:test];
안녕하세요, 이미 목록에서 항목을 추가하고 있습니다. 내 문제는 그 목록을 변경할 때 메뉴를 다시 작성하는 것입니다. '- (void) menuNeedsUpdate : (NSMenu *) 메뉴 {'에서 뭔가를 실행하려고하는데 호출되지 않습니다. 여기 내 코드를 살펴볼 수 있습니다. https://github.com/fabiantheblind/Shortcuts/blob/master/Shortcuts/tmnAppDelegate.m#L111 – fabianmoronzirfas
[[StatusItem menu] setDelegate : self]; –
죄송합니다. 저는 이것에 대해 새로운 것을 알고 있습니다. 힌트를 이해하지 못합니다 – fabianmoronzirfas
나는 몇 가지 잘못 된 곳이 있다고 생각한다. NSMenuDelegate를 추가해야했고 일부 콘센트를 참조하지 않았습니다. 다른 사람들 코드를 기웃 거리며 해결했습니다. :) 어쨌든 고마워. – fabianmoronzirfas