系统正在将不需要的项添加到我的应用中的自定义上下文菜单中

时间:2011-11-01 22:31:31

标签: macos cocoa contextmenu nsmenu

我为我的Cocoa应用程序定制了上下文菜单,以便只显示某些项目。尽管我进行了自定义,但我发现系统添加了一个菜单项 - “将iTunes添加为语音轨道”。

我尝试从菜单中删除此项目但不知何故,我无法获得控件。有没有办法删除这个项目,或者我是否必须编写AppleScript来禁用键盘快捷键下的iTunes选项?我讨厌这样做,因为我必须为用户恢复它。

3 个答案:

答案 0 :(得分:63)

您可以使用“首选项”控制这些菜单的内容(系统范围)。

参见系统偏好设置> 键盘> 键盘快捷键> 服务> 文本

答案 1 :(得分:0)

根据我的经验,Apple的默认项目会触发菜单的确切标题。例如,我有一个带有NSMenu的玩具应用程序,我完全用代码创建(没有笔尖)。如果我按如下方式初始化它,我发现View菜单会获得一个额外的项目(全屏):

    NSMenu* viewMenu = [[NSMenu alloc]initWithTitle:@"View"];

但是,如果我在名称中加了一个额外的空格,那么Apple就不会惹它:

    NSMenu* viewMenu = [[NSMenu alloc]initWithTitle:@"View "];

答案 2 :(得分:-7)

  

是否可以删除此项目,或者我是否必须编写AppleScript以禁用键盘快捷键下的iTunes选项?

不要与系统作斗争;这些服务项应该出现在每个上下文菜单中,如“系统偏好设置”中所指定。它甚至出现在Safari的上下文菜单上,我现在正用它来查看这篇文章。是的我同意默认启用“添加到iTunes”是苹果公司的一个糟糕选择,但这就是生活。

也许用户安装了他/她自己的服务项目,称为Automator操作。在这种情况下,用户可能不希望将其删除。

相关问题