Мне нужно, чтобы служба, которую я создал, была включена по умолчанию в меню служб.
Я создал службу для своего приложения OS X (работающего на Snow Leopard).Я настроил Info.plist следующим образом:
<key>NSServices</key>
<array>
<dict>
<key>NSSendTypes</key>
<array>
<string>NSStringPboardType</string>
</array>
<key>NSMessage</key>
<string>dropService</string>
<key>NSMenuItem</key>
<dict>
<key>default</key>
<string>Drop Service</string>
</dict>
<key>NSPortName</key>
<string>MyApp</string>
</dict>
</array>
Пока все хорошо, я следую другим шагам, описанным в: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/SysServices/introduction.html, и все, кажется, работает правильно.
Я выполнил команду:
/System/Library/CoreServices/pbs
И теперь моя служба отображается в разделе «Системные настройки -> Клавиатура -> Сочетания клавиш -> Службы».Так что система знает об этом.Но он не будет отображаться в меню служб, если я не активирую его вручную.
Когда я пытаюсь отладить службу, я получаю следующее сообщение:
/Applications/TextEdit.app/Contents/MacOS/TextEdit -NSDebugServices com.myapp.MyApp
Drop Service (com.myapp.MyApp) is disabled in the services menu and disabled in the context menu, by the standard Services policy.
Понятия не имею«стандартная политика служб» такова, и я не могу найти ссылку на эту ошибку на сайте разработчика Apple.
Я бы подумал, что автоматическое включение элементов обслуживания невозможно, но я подтвердил, что некоторые приложения делают это(например, «Вещи из культурного кода»), поэтому я знаю, что это можно сделать.
Есть идеи?