2011-07-15 8 views
14

まず、この質問はおそらく既に尋ねられていることを指摘したいと思います。プログラムでNSMenuItemsを含むNSMenuを作成しますか?

私はプログラムでメインバーにNSMenuとNSMenuItemを作成しようとしています。 NSMenuはFileになり、その中にNSMenuItemが3つあり、New、Open、Saveがあります。

NSMenu *fileMenu = [[NSMenu alloc] initWithTitle:@"File"]; 
NSMenuItem *newMenu = [[NSMenuItem alloc] initWithTitle:@"New" action:NULL keyEquivalent:@""]; 
NSMenuItem *openMenu = [[NSMenuItem alloc] initWithTitle:@"Open" action:NULL keyEquivalent:@""]; 
NSMenuItem *saveMenu = [[NSMenuItem alloc] initWithTitle:@"Save" action:NULL keyEquivalent:@""]; 
[newMenu setMenu:fileMenu]; 
[openMenu setMenu:fileMenu]; 
[saveMenu setMenu:fileMenu]; 

しかし、何も起こりません、私はそれがFILEMENUを使用する必要があるアプリケーションに伝える必要がありかなり確信しているが、私はことをどのように行うのですか、と:

しかし、何の作業は、ここで私が現在持っているものですそれが問題でないなら、それは何ですか?私はこの物事ではかなり新しいですが、学習に興味があるので、ちょっとしたヒントは何もありません!

答えて

28

メニューを設定すると、親メニューではなく、その項目に表示されるメニューが設定されます。その後、

[fileMenu addItem: newMenu]; 
[fileMenu addItem: openMenu]; 
[fileMenu addItem: saveMenu]; 

とメニューバーにメニューを追加するには:

、あなたのメニューに使用するこれらの3つの項目を追加するには

NSMenuItem *fileMenuItem = [[NSMenuItem alloc] initWithTitle: @"File"]; 
[fileMenuItem setSubmenu: fileMenu]; // was setMenu: 
[[NSApp mainMenu] addItem: fileMenuItem]; 
[fileMenuItem release]; 

すべてのメニューは複数のメニュー項目を所有しています。 1つのメニュー項目がサブメニューを担当することができます。これらのメニューはすべて[NSApp mainMenu]によってUIに固定されています。

関連する問題