0
프로그래밍 방식으로 여러 상태 메뉴 항목을 추가해야합니다. 이전에 NSStatusItem을 사용한 적이 없습니다. 다음은 내가 가지고있는 것입니다.NSStatusItem의 액션을 통해 변수 전달하기
- (void)showStatus {
for (NSInteger i4 = 0; i4 < alertArray4.count; i4++) {
NSString *person = [[alertArray4 objectAtIndex:i4] objectForKey:key4e];
NSString *imagepath = [[alertArray4 objectAtIndex:i4] objectForKey:key4f];
NSString *nextDOB = [[alertArray4 objectAtIndex:i4] objectForKey:key4h];
NSImage *personimage;
if ([imagepath isEqualToString:@"0"]) {
personimage = [self imageResize:[NSImage imageNamed:@"userNone"] newSize:NSMakeSize(16.0f,16.0f)];
}
else {
personimage = [self imageResize:[NSImage imageNamed:@"userOne"] newSize:NSMakeSize(16.0f,16.0f)];
}
NSString *menuTitle = [NSString stringWithFormat:@"%@ in %@ days",person,nextDOB];
NSMenuItem *menuItem = [[NSMenuItem alloc] initWithTitle:menuTitle action:@selector(statusItemClicked:) keyEquivalent:@""];
[menuItem setImage:personimage];
}
statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];
statusImage = [NSImage imageNamed:@"appIcon16"];
[statusItem setImage:statusImage];
[statusItem setMenu:statusMenu];
[statusItem setTitle:alertCount.stringValue];
}
- (void)statusItemClicked:(NSString *)num {
NSLog(@"Hello");
}
그리고 항목 수 = i4 인 상태 메뉴가 게시됩니다. 내가 이해할 수없는 것은 statusItemClicked에 변수를 전달하여 응용 프로그램이 사용자가 선택한 menuitem을 알 수 있도록하는 방법입니다. 그렇다면 statusItemClicked에 변수 (i4)를 보내려면 어떻게해야합니까? performSelectorInBackground을 사용하는 경우 에이라는 변수를 추가 할 수 있습니다. 나는이 경우에 그렇게 할 수 없다고 생각한다.
도움 주셔서 감사합니다.
사전 (문자열에있는 메뉴 항목을지도), I 중복을 찾고 오전의 Obj-C 관련 객체 API 등 ... –
는 것 같습니다. –
여기 있습니다 : http://stackoverflow.com/questions/1508453/actionselectorshowalert-how-to-pass-parameter-in-this-showalert-method이게 당신이 찾고있는 것인지 알려주세요. –