Domanda

Dropbox ha l'opzione di aggiungere un pulsante alla barra degli strumenti Finder. Appare anche nella finestra "personalizza la barra degli strumenti ...". Non riesco a trovare alcuna documentazione su come è fatto questo genere di cose ... qualcuno sa come farlo o qualcuno può indicarmi una documentazione o un codice di esempio?

Modifica uno:

Immagino che un inizio sarebbe trovare la posizione delle icone esistenti e qualsiasi codice correlato.

Ho notato che Dropbox ha file in Library/DropboxhelperTools/Dropbox_U501 chiamato Mach_inject_bundle_stub.bundle e FinderloadBundle che potrebbero fare la magia. Dropbox sta anche mettendo il badge "Tick" sulle icone di Finder. Questo codice potrebbe essere coinvolto: github.com/rentzsch/mach_star

Modifica due: A Dropbox Talk di Rian Hunter sul processo è qui, intorno alle 15:30http://blip.tv/pycon-us-videos-2009-2010-2011/pycon-2011-how-dropbox-did-it-and-how-python-helped-4896698

Guardando nel file DropboxBundle in Dropbox_U501 mostra le icone e un po 'di codice compilato. Il codice suggerisce che Rian Hunter è l'autore: http://twitter.com/timeserena

Rian ha la sua versione del codice Mach Star sul suo github - https://github.com/rianhunter/mach_star - Anche se sembra molto più vecchio

Modifica tre

C'era un "seminario di iniezione di codice" a Stanford qualche settimana fa - http://stanfordacm.com/past/ - Ospitato da Rian. Se qualcuno ha appunti da questo per favore fatemelo sapere!

È stato utile?

Soluzione

Dropbox utilizzava la magia priva di documenti. Non esiste un modo ufficialmente supportato per farlo; Il più vicino che puoi ottenere senza reverse ingegneria è Servizi.

(AGGIORNAMENTO: A partire da MacOS 10.11, ciò che Dropbox stava facendo non è più possibile. La protezione dell'integrità del sistema ora impedisce l'iniezione del codice nei processi di sistema, come il Finder.)

Altri suggerimenti

Puoi usare Finder Sync Estensione dell'app(A partire da OS X V10.10).

Un'estensione di sincronizzazione di Finder può:

  • Aggiungere, rimuovere e aggiornare badge ed etichette sugli articoli in una cartella monitorata.
  • Visualizza un menu contestuale quando il controllo dell'utente fa clic su un elemento all'interno di una cartella monitorata.
  • Aggiungi un pulsante personalizzato alla barra degli strumenti del Finder.

Il discorso di Rian a Pycon 2011 (su Blip.tv) non spiega altro che "Finder inverse ingegnerizzato". Sebbene le cose Mach_Star siano preziose, non spiega ancora come far funzionare un'icona della barra laterale. E il "Workshop di iniezione di codice" di Stanford non ha pubblicato alcun contenuto su questo metodo.

Ho nm'd e class-dump di entrambi i bundle che Dropbox installa per ciascun utente sotto /libreria /dropboxhelpertools e l'output fornisce buone informazioni. Se ci torno, finirò la mia ricerca e la pubblicherò. Le probabilità sono che non lo sarà per un po 'di tempo, quindi spero che questa spinta aiuti qualcun altro.

Una risposta intermedia facile che può essere adeguata per alcune persone è semplicemente creare icone che assomigliano ai pulsanti.

Ad esempio, ho creato "nuovo file di testo qui" e "nuovo terminale icone" per il mio ricerca:

enter image description here

Il metodo può essere trovato qui.

Lo svantaggio è che devono essere quadrati e non avere animazioni/menu o presentarsi in "personalizzare la barra degli strumenti" ecc.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top