15

まず、この質問はおそらくすでに尋ねられていることを指摘しておきたいと思います。彼らからの回答が見つかりませんでした。

だから、私はプログラムでNSMenuとNSMenuItemをメインバーに作成しようとしているので、fe. NSMenu は File で、その中に 3 つの NSMenuItem、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 を使用する必要があることをアプリケーションに伝える必要があると確信していますが、どうすればそれを行うことができますか?それが問題ではない場合、何が問題なのでしょうか? 私はこのようなことにはかなり慣れていませんが、学ぶことに興味があるので、どんなヒントでも何もないよりはましです!

4

1 に答える 1

30

メニューを設定すると、親メニューではなく、そのアイテムに表示されるメニューが設定されます。

これら 3 つの項目をメニューに追加するには、次を使用します。

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

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

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

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

于 2011-07-15T12:23:54.273 に答える