Система добавляет ненужные элементы в мое настраиваемое контекстное меню в моем приложении - PullRequest
12 голосов
/ 02 ноября 2011

Я настроил контекстное меню для своего приложения Какао так, чтобы были видны только определенные элементы. Несмотря на мои настройки, я обнаружил, что система добавляет пункт меню - «Добавить в iTunes как разговорный трек».

Я пытался удалить этот пункт из меню, но каким-то образом я не могу получить контроль. Есть ли способ, которым этот элемент может быть удален, или мне нужно написать AppleScript, чтобы отключить опцию iTunes в разделе «Сочетания клавиш»? Я ненавижу это делать, так как тогда мне придется восстановить его для пользователя.

Ответы [ 3 ]

63 голосов
/ 08 января 2012

Вы можете контролировать содержимое этих меню (общесистемных) с помощью настроек.

См. Системные настройки > Клавиатура > Сочетания клавиш > Службы > Текст

0 голосов
/ 20 июля 2016

По моему опыту, элементы Apple по умолчанию отключаются от точного заголовка меню.Например, у меня есть игрушечное приложение с NSMenu, которое я создаю полностью в коде (без пера).Я обнаружил, что меню «Вид» получает дополнительный элемент (для полного экрана), если я инициализирую его следующим образом:

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

Однако, если я добавлю лишний пробел в имя, Apple не будет связываться сэто:

    NSMenu* viewMenu = [[NSMenu alloc]initWithTitle:@"View "];
0 голосов
/ 02 ноября 2011

Есть ли способ, которым этот элемент можно удалить, или мне нужно написать AppleScript, чтобы отключить параметр iTunes в разделе «Сочетания клавиш»?

Не боритесь с Системой; эти Сервисные элементы должны появляться в каждом контекстном меню, как указано в Системных настройках. Он даже появляется в контекстном меню Safari, которое я сейчас использую для просмотра этого поста. Да, я согласен, что включение «добавить в iTunes» по умолчанию - плохой выбор со стороны Apple, но это жизнь.

Возможно, у пользователя есть собственный пункт обслуживания, скажем, как действие Automator. В этом случае пользователь, вероятно, не хочет его удалять.

...