禁用菜单项

El *_*ato 5 macos objective-c

我的一本电子书解释了如何添加新的菜单项.嗯,这不是很难弄明白.要弄清楚如何将IBAction链接到新的菜单项也不难.但是本书和Google搜索结果并没有解释如何禁用菜单项.更具体地说,我想禁用"首选项"和"退出",具体取决于当前显示的窗口.如果应用程序当前显示"首选项"窗口,我想禁用这些菜单项.

在此输入图像描述

假设我有一个名为preferencesMenu的IBOutlet 然后我有

[preferencesMenu setEnabled:NO];
Run Code Online (Sandbox Code Playgroud)

,这不会禁用有问题的菜单项.那么如何禁用特定的菜单项呢?

感谢您的意见.

汤姆

Cod*_*aFi 8

NSMenuItems仅其目标和选择器分别为nil和时自动禁用NULL.

[preferencesMenu setTarget:nil];
[preferencesMenu setAction:NULL];
Run Code Online (Sandbox Code Playgroud)

哪一个快速测试显示导致这个:

在此输入图像描述


Mat*_*ler 1

只需将目标设置为零即可。我来完成这项工作。

[preferencesMenu setTarget:nil];
Run Code Online (Sandbox Code Playgroud)