2016-06-29 2 views
0

최소한의 IB 사용으로 Mac 응용 프로그램을 작성하고 있습니다. programatically create initial window of cocoa app (OS X)을 참조하십시오.프로그래밍 방식으로 생성 된 NSMenu는 첫 번째 항목 만 표시합니다.

public override void DidFinishLaunching(NSNotification notification) { 
     // create and show a window, then . . . 
     NSMenu fileMenu = new NSMenu(); 
     NSMenu appMenu = new NSMenu(); 

     // add some items to both menus, then . . . 

     NSMenuItem file = new NSMenuItem("file"); 
     file.Submenu = fileMenu; 

     NSMenuItem app = new NSMenuItem("app"); 
     app.Submenu = appMenu; 

     NSMenu topLevelMenu = new NSMenu(); 
     topLevelMenu.AddItem(app); // these two lines in 
     topLevelMenu.AddItem(file); // either order 

     NSApplication.SharedApplication.Menu = topLevelMenu; // incidentally, setting the MainMenu doesn't appear to do anything 
    } 
    } 

이상한 것은 내가 추가 첫 번째 메뉴 항목이 표시되는지이며, 그 제목이 내 응용 프로그램의 이름을 변경 :

여기 (자 마린/C#을 통해) 내 코드입니다. 따라서 위의 코드에서 MyAppName이라는 제목의 앱 메뉴 만 표시되지만 올바른 항목은 표시됩니다. 대신 NSMenuItem 파일을 먼저 추가하면 이름이 내 앱 이름으로 변경된 메뉴가 다시 표시되고보기 메뉴가 전혀 표시되지 않습니다.

변경된 제목은 괜찮습니다. 나는 애플이 항상 활성화 된 앱의 이름을 보여주기를 원한다고 생각한다. 하지만 나는 추가 메뉴를 표시 할 수 없다는 것을 나에게 알린다.

내 모든 메뉴를 화면 상단에 표시하려면 어떻게해야합니까?

+1

'fileMenu'와'appMenu'에는 제목이 없습니다. – Willeke

답변

0

가 난 그냥 내 메뉴에 제목을 추가하는 데 필요한 :

fileMenu.Title = "file"; 
appMenu.Title = "whatever"; 

첫 번째의 제목은 여전히 ​​응용 프로그램의 이름으로 변경됩니다.