8

menu と呼ばれる NSMenu に存在する history と呼ばれる NSMenuItem があります。プログラムの起動時に履歴にサブメニューがないため、無効になっています。それからある時点で、履歴のサブメニューが必要になるので、それを作成して履歴のサブメニューにします。サブメニューがあることを示す矢印が履歴の横に表示されます。しかし、履歴はまだ無効になっています。setEnabled を試しましたが、うまくいきません。助けてください。ここに私のコード:

これは、メニューに NSMenuItem が表示されるように、メニューと履歴を作成するときです。

    menu = [[NSMenu alloc] initWithTitle:@"Menu"];
[[menu addItemWithTitle:@"History" action:nil keyEquivalent:@""] setTarget:self];
[[menu addItemWithTitle:@"Settings" action:@selector(loadSettings:) keyEquivalent:@""] setTarget:self];
[[menu addItemWithTitle:@"Quit" action:@selector(terminateApp:) keyEquivalent:@""] setTarget:self];

この時点で、履歴は無効 (グレー表示) になっています。次に、プログラムのどこかに、履歴のサブメニューが必要です。

        if (historyMenu == nil) {
        historyMenu = [[NSMenu alloc] initWithTitle:@"Lyrics history"];
        [menu setSubmenu:historyMenu forItem:[menu itemWithTitle:@"History"]];
    }

履歴の横に矢印が表示されるようになりましたが、まだグレー表示されています。

助けてください、私は過去2時間これを理解しようとしてきました。ありがとう。

4

3 に答える 3