2011-12-05 57 views
20

Dropbox tiene la opción de agregar un botón a la barra de herramientas del Finder. Incluso aparece en la ventana 'Personalizar barra de herramientas ...'. No encuentro ninguna documentación sobre cómo se hace este tipo de cosas ... ¿Alguien sabe cómo hacer esto, o alguien me puede indicar algún tipo de documentación o código de muestra?¿Agregar botones a la barra de herramientas del Finder?

editar uno:

supongo que un comienzo sería encontrar la ubicación de los iconos existentes, y cualquier código relacionado.

Noté que Dropbox tiene archivos en la Biblioteca/DropboxHelperTools/Dropbox_u501 llama mach_inject_bundle_stub.bundle y FinderLoadBundle que podría estar haciendo la magia. Dropbox también está colocando la insignia 'tic' en los íconos del Buscador. Este código podría estar involucrado: github.com/rentzsch/mach_star

EDITAR DOS: Un Dropbox charla de Rian Hunter sobre el proceso es aquí, en alrededor de 15:30 http://blip.tv/pycon-us-videos-2009-2010-2011/pycon-2011-how-dropbox-did-it-and-how-python-helped-4896698

Buscando en el archivo de DropboxBundle Dropbox_u501 muestra los iconos y algunos códigos compilados. El código sugiere que Rian Hunter es el autor: http://twitter.com/timeserena

Rian tiene su propia versión del código de Mach de la estrella en su github - https://github.com/rianhunter/mach_star - aunque parece mucho más viejo

EDITAR TRES

Hubo un ' Taller de Inyección de Código en Stanford hace unas semanas - http://stanfordacm.com/past/ - organizado por Rian. Si alguien tiene notas de esto, por favor avíseme!

+2

posible duplicado de [Cómo escribir OS X Finder plug-in] (http://stackoverflow.com/questions/1294335/how-to-write-os-x-finder-plugin) –

+0

Dropbox no es la única aplicación que hace esto: también echa un vistazo a [XtraFinder] (http://www.trankynam.com/xtrafinder/) que me encanta. Todavía estoy intentando averiguar cómo hacerlo con una de mis propias aplicaciones :) – cwd

+0

Relacionado: [¿Cómo es que Dropbox obtiene un ícono en la barra lateral del Finder?] (Http://apple.stackexchange.com/q/83152/ 22781) en AD – kenorb

Respuesta

7

Dropbox usaba magia no documentada. No hay una forma oficialmente compatible para hacer esto; lo más cercano que puede obtener sin ingeniería inversa es Services.

(Actualización:. A partir de macOS 10.11, lo que Dropbox estaba haciendo ya no es posible en absoluto Protección de la Integridad del Sistema ahora impide que el código del que se inyecta en los procesos del sistema, tales como el Finder.)

+3

Y lo más cercano que puede llegar a ser un elemento de la barra de herramientas de Finder es ser una aplicación que puede abrir archivos y/o carpetas. El usuario puede agregar manualmente una aplicación de ese tipo a una barra de herramientas (aunque no se mostrará en la barra de herramientas Personalizar). Time Machine es una buena aplicación para demostrar esto. –

+0

Mirando los archivos de Dropbox en la Biblioteca, creo que podría ser algún tipo de cosa mach_inject, lo que está más allá de mi comprensión. Pero google me apunta a https://github.com/rentzsch/mach_star – cannyboy

+0

@PeterHosey Si bien es posible arrastrar y soltar, no se puede lograr un estilo puro que coincida con los botones nativos sin algún tipo de ingeniería inversa. Los íconos se generan a partir de una serie de png transparentes, por lo que incluso con iconos bien retocados, algo siempre sentirá afecto. – fny

2

charla de Rian en PyCon 2011 (en blip.tv) no explica nada más que "Hacemos ingeniería inversa de Finder". Aunque las cosas de mach_star son valiosas, aún no explican cómo hacer funcionar un ícono de la barra lateral. Y el 'Taller de Inyección de Código' de Stanford no ha publicado ningún contenido sobre este método.

He analizado y descargado en clase ambos paquetes que Dropbox instala para cada usuario en/Library/DropboxHelperTools, y el resultado proporciona una buena idea. Si vuelvo a ello, terminaré mi investigación y lo publicaré. Las probabilidades son que no será durante un tiempo, así que aquí está la esperanza de que este empujón ayude a alguien más.

0

Una respuesta intermedia fácil que puede ser adecuada para algunas personas es simplemente crear iconos que parecen botones.

p. Ej. Creé 'nuevo archivo de texto aquí' y 'nueva terminal aquí iconos' para mi Finder:

enter image description here

El método se puede encontrar here.

La desventaja es que deben ser cuadrados y no tienen animaciones/menús o aparecen en 'personalizar la barra de herramientas', etc.

8

Puede usar Finder Sync app extension (Comenzando en OS X v10.10).

extensión Un Buscador de sincronización puede:

  • añadir, eliminar y actualizar insignias y etiquetas de los elementos de una carpeta supervisada.
  • Mostrar un menú contextual cuando el usuario presiona Control y hace clic en un elemento dentro de una carpeta supervisada.
  • Agregue un botón personalizado a la barra de herramientas del Finder.
Cuestiones relacionadas