2016-06-29 6 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 
    } 
    } 

奇妙なことは、私は追加だけで最初のメニュー項目が表示されることであり、そのタイトルは私のアプリの名前に変更されます。

はここ(Xamarin/C#を経由で)私のコードです。したがって、上記のコードでは、MyAppNameというタイトルのアプリケーションメニューが表示されますが、正しい項目は表示されます。代わりにNSMenuItemファイルを最初に追加すると、その名前が再び自分のアプリ名に変更されたメニューが表示され、表示メニューが表示されなくなります。

変更されたタイトルは気にしません。私はAppleが常にアクティブなアプリの名前を表示したいと思う。しかし、それは私が表示される追加のメニューを取得することはできません私にはバグ。

すべてのメニューを画面上部に表示するにはどうすればよいですか?

+1

'fileMenu'と' appMenu'にはタイトルがありません。 – Willeke

答えて

0

ちょうど私のメニューにタイトルを追加するために必要なI:

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

最初のもののタイトルはまだアプリの名前に変更されます。

関連する問題