NSStatusItem에는 NSMenu가 첨부되어 있으며 NSMenu의 버튼 중 하나는 NSWindow를 엽니 다. 이 단추 중 하나를 클릭 할 때마다 창이 예상대로 열리고 제대로 작동하지만 NSStatusItem의 또 다른 표시가 열립니다.NSStatusItem이 여러 번 표시되는 이유는 무엇입니까?
NSStatusItem은 시계이므로 제대로 업데이트되고 있음을 알 수 있습니다. 그러나 복제 된 NSStatusItem에는 자체 메뉴가 없습니다. 창을 더 많이 만드는 버튼을 누르면 더 많은 NSStatusItem 복제 버전이 나타납니다.
이 경우를 제외하고는 모두 정상적으로 작동합니다.
정보가 많지 않지만 잠재적으로 도움이 될만한 생각은 없습니다. 더 많은 정보를 제공하거나 무언가를 시도해 보면 행복 할 것입니다.
EDIT : 버튼을 클릭 할 때마다 awakeFromNib이 어떻게 든 호출됩니다. 따라서 절반 작동하는 NSStatusItem이 발생합니다.
수정 : 임시 해결 방법은 awakeFromNib 메서드를 dispatch_once
에 넣는 것입니다.
편집 : 버튼을 클릭하면 NSStatusItem가 PreferencesWindow 펜촉에 포함되어 @zpasternack
- (IBAction)preferences:(id)sender {
self.windowController = [[NSWindowController alloc] initWithWindowNibName:@"PreferencesWindow"];
[[self windowController] showWindow:self];
}
버튼을 클릭하면 NSWindow가 열리는 코드를 게시 할 수 있습니까? – zpasternack
거기에 @zpasternack이 있습니다. 또한, 'windowController'는 헤더에 다음과 같이 선언됩니다. @property (strong) NSWindowController * windowController; –