Submenú para servicios

2

He escrito una pequeña aplicación y quiero permitir que otras aplicaciones compartan datos con ella.

Mi primera idea fue integrarla en el menú de servicio. Sin embargo, necesito submenús dinámicos y la página de desarrollo de Apple para Servicios del sistema indica que "No hay submenús en el menú Servicios" desde 10.6.

¿Existen alternativas para integrarse en el menú contextual de otras aplicaciones y que tienen submenús?

    
pregunta ubuntudroid 20.01.2013 - 14:28

3 respuestas

1

Otra alternativa sería exponer solo los servicios de nivel superior y luego hacer que la aplicación tenga la responsabilidad de mostrar las opciones del "submenú".

Esto brinda el beneficio de ponerte en control de los atajos de teclado para las opciones secundarias. El usuario también obtiene una lista de servicios más limpia.

    
respondido por el Tyler Wayne 05.02.2013 - 18:30
1

Una alternativa podría ser el menú AppleScript. Presenta todos los scripts en la carpeta ~/Library/Scripts/ y conserva la jerarquía de las subcarpetas.

Problemas:

  • Tendría que integrar el soporte de AppleScript en su aplicación.
  • Tendrías que crear un montón de AppleScripts para exponer tu funcionalidad.
  • El menú AppleScript está desactivado de forma predeterminada.
  • Es un truco torpe.
respondido por el Tyler Wayne 05.02.2013 - 18:27
1

Un mejor lugar para preguntar es probablemente el foro de programadores enlace

Pero, a primera vista, creo que puedes hacer algunas variantes diferentes de tu .app cada una registrando su propia acción de Servicios. Esas variantes podrían lanzar su aplicación "principal" para hacer el trabajo pesado.

Estas variantes podrían incluirse dentro de la aplicación principal, como veo algunos ejemplos aquí:

/Applications/Adium.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/finish_installation.app
/Applications/Android File Transfer.app/Contents/Frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app
/Applications/Android File Transfer.app/Contents/Resources/Android File Transfer Agent.app
/Applications/Android File Transfer.app/Contents/Resources/Android File Transfer Agent.app/Contents/Frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app
/Applications/Google Chrome Canary.app/Contents/Versions/26.0.1400.0/Google Chrome Framework.framework/Resources/app_mode_loader.app
/Applications/Google Chrome Canary.app/Contents/Versions/26.0.1400.0/Google Chrome Framework.framework/Resources/crash_report_sender.app
/Applications/Google Chrome Canary.app/Contents/Versions/26.0.1400.0/Google Chrome Helper EH.app
/Applications/Google Chrome Canary.app/Contents/Versions/26.0.1400.0/Google Chrome Helper NP.app
/Applications/Google Chrome Canary.app/Contents/Versions/26.0.1400.0/Google Chrome Helper.app
/Applications/Quicksilver.app/Contents/Resources/QSDroplet.app
/Applications/Stainless.app/Contents/Helpers/StainlessClient.app
/Applications/Firefox.app/Contents/MacOS/crashreporter.app
/Applications/Firefox.app/Contents/MacOS/plugin-container.app
/Applications/Firefox.app/Contents/MacOS/updater.app
/Applications/TextMate.app/Contents/SharedSupport/Bundles/ActionScript.tmbundle/Support/bin/XTrace.app
/Applications/TextMate.app/Contents/SharedSupport/Support/bin/CocoaDialog.app
/Applications/TextMate.app/Contents/SharedSupport/Support/bin/CommitWindow.app
/Applications/Xcode.app/Contents/Applications/Accessibility Inspector.app
/Applications/Xcode.app/Contents/Applications/Application Loader.app
/Applications/Xcode.app/Contents/Applications/FileMerge.app
/Applications/Xcode.app/Contents/Applications/Instruments.app
/Applications/Xcode.app/Contents/Applications/OpenGL ES Performance Detective.app
…
    
respondido por el DouglasDD 02.02.2013 - 00:42

Lea otras preguntas en las etiquetas