NSMenu와 NSMenuItem
메뉴를 추가하기 위해 아래와 같이 추가하였다.
NSMenuItem *fileMenuItem = [[NSMenuItem alloc] initWithTitle:@"New Project" action:@selector(menu_newProject) keyEquivalent:@""];
[self.menuNew.submenu addItem:fileMenuItem];
추가한 New Project 비활성화 상태다.
기본값이 비활성화인가.
강제로 Enable을 시켜봤다.
NSMenuItem *fileMenuItem = [[NSMenuItem alloc] initWithTitle:@"New Project" action:@selector(menu_newProject) keyEquivalent:@""]; [fileMenuItem setEnabled:YES]; [self.menuNew.submenu addItem:fileMenuItem]; |
결과는 같았다.
구글링을 해보니 setAutoenablesItems 속성이 있다는 것을 알게 되었다.
[self.menuNew.submenu setAutoenablesItems:NO]; NSMenuItem *fileMenuItem = [[NSMenuItem alloc] initWithTitle:@"New Project" action:@selector(menu_newProject) keyEquivalent:@""]; [fileMenuItem setEnabled:YES]; [self.menuNew.submenu addItem:fileMenuItem];
|
오오. 된다.
근데 문제가 생겼다. menu_newProject 메시지가 오지 않았다.
근본적인 해결책을 찾아야 했다.
타겟/액션에 관한 설정을 안해서 발생한 문제로 초보적인 실수였다.-_-
올바른 해결책은 다음과 같다.
NSMenuItem *fileMenuItem = [[NSMenuItem alloc] initWithTitle:@"New Project" action:@selector(menu_newProject) keyEquivalent:@""];
[fileMenuItem setTarget:self];
[self.menuNew.submenu addItem:fileMenuItem];
결과도 정상적이다.