2011-01-21 5 views
14

저는 Cocoa 응용 프로그램을 매우 간단하게 만들려고합니다. 나는 그들에게 세 가지 메시지가 담긴 세 개의 창을 가지고있다. 난 할 노력하고있어 것은 이것이다 : 사용자가 응용 프로그램을 실행MenuBar 아이콘이있는 간단한 Cocoa 응용 프로그램입니다. 어떻게:?

, 응용 프로그램 아이콘이 메뉴 표시 줄에 표시하고, 아니 메뉴

그리고 어떤 도크 아이콘을 발생하지 모든있어, 사용자가 클릭 할 수 있습니다 MenuBar 아이콘을 클릭하고 드롭 다운 목록을 가지고 세 가지 사용 가능한 메시지 중에서 선택하십시오. '

나는 그것이 쓸모 알고있다, 그러나 이것은 말 그대로 내 첫 번째 응용 프로그램 내가 NSStatusItem가 제대로 작동하도록하는 방법을 알아낼 수 없습니다 ...

나는 주위를 검토 ​​한 결과 몇 가지 튜토리얼을 발견하지만 난 할 수 그들 중 누구라도 따라 오는 것 같아요 ... 어떤 도움 이요? 파일의 Info.plist 및 진정한로 설정하는 부울 LSUIElement 항목을 추가 - "더 도크 아이콘을"과 관련없는

답변

18
  1. . 이렇게하면 앱 전환기 UI (cmd + 탭)에서도 응용 프로그램이 표시되지 않습니다.

을 : 메뉴 표시 줄의 아이콘을 추가

  • NSStatusBarNSStatusItem 문서로보고이 예제 코드를 사용하는만큼이다. 코드에서 retain 호출을 허용하지 않습니다 ARC 이후

    // this one is taken from apple documentation 
    - (void)activateStatusMenu { 
        NSStatusBar *bar = [NSStatusBar systemStatusBar]; 
    
        theItem = [bar statusItemWithLength:NSVariableStatusItemLength]; 
        [theItem retain]; 
    
        [theItem setTitle: NSLocalizedString(@"Tablet",@"")]; 
        [theItem setHighlightMode:YES]; 
        [theItem setMenu:theMenu]; 
    } 
    
    - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { 
        [self activateStatusMenu]; 
    } 
    

    업데이트, 나는 항목이 생성되는 클래스의 theItem__strong 같은 인스턴스 변수를 생성하여 문제를 해결하기 위해 관리.

  • +1

    와우 정말 좋습니다. 나는 (내 손잡이가 암시하는 바와 같이) 총 코코아 newb이고 나는 vb.net 배경에서오고 있으며 objective-c 구문으로 조금 어려움을 겪고있다. 그러나 나는 애플 코코아 문서가 마이크로 소프트 VB 문서보다 훨씬 더 철저하다는 것을 발견했다. 귀하의 답변은 상당히 도움이되었으며, 귀하의 도움에 감사드립니다. – Zrb0529

    관련 문제