我已经为我的 Cocoa 应用程序定制了上下文菜单,这样只有某些项目是可见的。尽管我进行了自定义,但我发现系统添加了一个菜单项——“作为语音轨道添加到 iTunes”。
我尝试从菜单中删除此项目,但不知何故,我无法获得控制权。有没有办法可以删除这个项目,还是我必须编写一个 AppleScript 来禁用键盘快捷键下的 iTunes 选项?我讨厌这样做,因为我必须为用户恢复它。
我已经为我的 Cocoa 应用程序定制了上下文菜单,这样只有某些项目是可见的。尽管我进行了自定义,但我发现系统添加了一个菜单项——“作为语音轨道添加到 iTunes”。
我尝试从菜单中删除此项目,但不知何故,我无法获得控制权。有没有办法可以删除这个项目,还是我必须编写一个 AppleScript 来禁用键盘快捷键下的 iTunes 选项?我讨厌这样做,因为我必须为用户恢复它。
您可以使用首选项控制这些菜单的内容(系统范围)。
请参阅系统偏好设置>键盘>键盘快捷键>服务>文本
根据我的经验,Apple 的默认项目会根据菜单的确切标题触发。例如,我有一个带有 NSMenu 的玩具应用程序,我完全用代码创建(没有 nib)。如果我按如下方式初始化它,我发现视图菜单会获得一个额外的项目(全屏):
NSMenu* viewMenu = [[NSMenu alloc]initWithTitle:@"View"];
但是,如果我在名称中添加了一个额外的空格,那么 Apple 就不会乱用它:
NSMenu* viewMenu = [[NSMenu alloc]initWithTitle:@"View "];
有没有办法可以删除这个项目,还是我必须编写一个 AppleScript 来禁用键盘快捷键下的 iTunes 选项?
不要与系统抗争;这些服务项目应该出现在每个上下文菜单中,如系统偏好设置中所指定的那样。它甚至出现在我现在用来查看这篇文章的 Safari 的上下文菜单中。是的,我同意默认启用“添加到 iTunes”对于 Apple 来说是一个糟糕的选择,但这就是生活。
也许用户安装了他/她自己的服务项目,例如作为 Automator 操作。在这种情况下,用户可能不想将其删除。