禁用 NSMenuItem

Posted

技术标签:

【中文标题】禁用 NSMenuItem【英文标题】:disabled NSMenuItem 【发布时间】:2011-05-30 06:51:47 【问题描述】:

我以编程方式创建了一个 NSMenuItem,但它已被禁用。如果我重写 validateMenuItem: 方法并为所有项目返回 YES,则菜单项可以正常工作。

当我告诉菜单 autoEnableItems 并且不覆盖 validateMenuItem: 方法时,为什么它不会被启用?

NSMenuItem *menuItem = [[NSMenuItem alloc] initWithTitle:label action:@selector(methodToLogSomething:) keyEquivalent:@""];
menuItem.representedObject = representedObject;
[menuItem setTarget:self];
[menu insertItem:menuItem atIndex:[[menu itemArray] count]-1];
[menuItem release];
[menu setAutoenablesItems:YES];

【问题讨论】:

【参考方案1】:

如果菜单项的目标和操作设置不正确,菜单项似乎会保持禁用状态。就我而言,我忘记了选择器末尾的:

【讨论】:

我忘记通过setTarget 设置目标。也没有正确设置。谢谢! 如果您尝试禁用某些菜单项,此答案也会有所帮助 花了几个小时试图解决这个问题,谢谢大家!

以上是关于禁用 NSMenuItem的主要内容,如果未能解决你的问题,请参考以下文章

JS禁用右键+禁用Ctrl+u+禁用F12

如何禁用a标签,是禁用事件,而不是啥阻止跳转之类的

jQuery禁用快捷键例如禁用F5刷新 禁用右键菜单等

jQuery禁用快捷键例如禁用F5刷新 禁用右键菜单等

如何在 Laravel 中禁用 CSRF 令牌以及为啥我们必须禁用它?

CDR被禁用后功能有影响不