Come mai Dropbox ottiene un'icona nella barra laterale del Finder?


40

Come mai Dropbox ottiene un'icona non generica nella barra laterale di Finder, quando altre directory come Google Drive e Sites (native in OS X prima di Lion) hanno tutte la stessa generica?

inserisci qui la descrizione dell'immagine

Come posso personalizzare le icone utilizzate dalle cartelle nella barra laterale? OS X usato per mostrare le singole icone di tutte le cartelle lì - non più.

Risposte:


36

Come hai notato, le versioni recenti di OS X mostrano solo le icone delle cartelle generiche nella barra laterale. Allora perché Dropbox riceve un trattamento speciale?

La risposta breve è che Dropbox utilizza API non documentate per raggiungere questo obiettivo. In termini non tecnici, è un trucco speciale installato dall'applicazione Dropbox.


Alcune persone curiose su StackOverflow hanno trovato il meccanismo specifico utilizzato da Dropbox: buon vecchio mach_inject. Lo stesso pacchetto fornisce sia la barra degli strumenti che l'icona della barra laterale.

Se sei curioso, i file di risorse vivono qui (almeno, sul mio sistema):

/Library/DropboxHelperTools/Dropbox_u502/DropboxBundle.bundle/Contents/Resources

Chiaramente, Dropbox fa di tutto per integrarsi perfettamente nel Finder. In mancanza di un trattamento simile, altre cartelle ordinarie hanno solo icone generiche nella barra laterale.


Modifica 01/10/2015: A partire da Yosemite (10.10), c'è una nuova, sanzionata API Sync Finder per l'integrazione, come sottolinea Doovers in un'altra risposta. In El Capitan (10.11), System Integrity Protection non consentirà il vecchio approccio in stile mach_inject.


5
Google dovrebbe fare lo stesso con Drive :)
Baumr

L'integrazione di Dropbox Finder funziona con El Capitan. Ho i menu contestuali, i badge e l'icona personalizzata nella barra laterale. Quale versione del client stai usando?
Matteo

@Matteo: è interessante, quando sono andato a controllare la versione (v3.10.6), ha iniziato a funzionare! Ti assicuro che non ha funzionato prima. Interessante ...
jmk

1
@Matteo: Ah, la comprensione della lettura fallisce da parte mia. Qualcuno ha già pubblicato con l'API aggiornata di seguito. Grazie per la correzione!
jmk

10

Secondo la documentazione per l' estensione di sincronizzazione del Finder :

Puoi anche utilizzare l'API del punto di estensione per aggiungere un pulsante della barra degli strumenti alla finestra del Finder o un'icona della barra laterale per la cartella monitorata .

Immagino che questo sia ciò che Dropbox utilizza per raggiungere questo e alcune / tutte le altre funzionalità facilitate da questa estensione. Ad esempio puoi anche:

  • Registra un set di cartelle da monitorare.
  • Ricevi notifiche quando l'utente avvia o interrompe la navigazione nel contenuto di una cartella monitorata. Ad esempio, l'estensione riceve una notifica quando l'utente apre una cartella monitorata nel Finder o in una finestra di dialogo Apri o Salva.
  • Aggiungi, rimuovi e aggiorna badge ed etichette sugli oggetti in una cartella monitorata.
  • Visualizza un menu contestuale quando l'utente fa clic tenendo premuto il tasto Ctrl su un elemento all'interno di una cartella monitorata.
  • Aggiungi un pulsante personalizzato alla barra degli strumenti del Finder.

Modificare:

Come Mugen menziona di seguito, El Capitan non consentirà l'iniezione di codice rendendo FinderSync l'unica opzione per il futuro. Con FinderSync disponibile solo dalla 10.10+, l'opzione migliore sarebbe quella di farlo come:

if (floor(NSAppKitVersionNumber) < NSAppKitVersionNumber10_10) { ... }

Ciò sembra essere in conflitto con la risposta più votata, qualche commento?
Baumr,

3
@Baumr Sto solo speculando qui, ma presumo che la risposta di jmk fosse probabilmente corretta al momento (e potrebbe essere ancora) ma che ora è più probabile che Dropbox utilizzi l'estensione di sincronizzazione del Finder "ufficiale" dal rilascio di Yosemite. Inoltre, penso che per chi cerca di ottenere la stessa funzionalità nella propria app, questa sarebbe una soluzione più utile dal momento che è documentata.
scopre

Sembra che tu abbia ragione: un modo per confermare?
Baumr,

2
In El-Capitan non saremo più in grado di iniettare codice, quindi l'opzione FinderSync è l'unica
Mugen,

1
@Baumr poiché l'estensione FinderSync è disponibile solo in 10.10+, penso che sarebbe meglio cercarla:if (floor(NSAppKitVersionNumber) < NSAppKitVersionNumber10_10) { ... }
Mugen,

2

Installa l'ultima app Xtra Finder da - http://www.trankynam.com/xtrafinder/

Attiva "Mostra icone colorate nella barra laterale" Si trova sotto una casella di testo di "Larghezza massima"

Per altre icone nella barra laterale

Sostituisci qui i file: la cartella /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/ contiene l'ICNS grigio usato oltre ai file [non utilizzati] 1024x1024 ICNS a colori. Ogni file ICNS deve supportare le seguenti dimensioni:

  • 16x16 72 DPI
  • 18x18 72 DPI
  • 32x32 144 e 72 DPI
  • 36x36 144 DPI
  • 64x64 144 DPI

Se hai aggiunto una cartella personalizzata alla barra laterale, puoi anche cambiarne l'icona. Diciamo che il nome della cartella si chiama "Software" Preparare un file ICNS con il nome SidebarSoftwares.icns nella directory sopra menzionata.

Fondamentalmente il file icns deve essere chiamato SidebarFoldername.icns, dove Sidebar rimane costante e si inserisce il nome utente corrispondente.

Per DropBox

Applica il file ICNS a / Users / admin / Dropbox /Applications/Dropbox.app /Applications/Dropbox.app/Contents/Resources/box.icns (devi sostituire questo file con quello che desideri)

Icone SideBar di DropBox Finder

Passare a /Library/DropboxHelperTools/Dropbox_u502/DropboxBundle.bundle/Contents/Resources

Qui è necessario sostituire quanto segue: toolbar.tiff (32x32 pixel 72 DPI)

sidebar.tiff (64x64 pixel 72 DPI)

contextmenu.tiff (32x32 pixel 72 DPI)

toolbar_large.png (19x19 pixel 72 DPI)

sidebar_blue.png (16x16 pixel 72 DPI)


L'aggiunta di un'icona della barra laterale personalizzata per una cartella richiede l'installazione dell'app o può essere eseguita da sola? Inoltre, sai se questo funzionerà con Yosemite quando verrà rilasciato?
Dhruveonmars,

1
Ho appena provato questo per aggiungere la mia icona e non ha funzionato. Ho quindi installato l'app SideEffect che rende le icone colorate e la mia icona personalizzata è apparsa. Ho disinstallato l'app e la mia icona non c'era più.
Pahnev,

1

Dropbox utilizza la tecnica di iniezione del codice Finder per personalizzare l'icona della barra laterale (e aggiungere elementi al menu di scelta rapida e aggiungere il pulsante alla barra superiore del Finder). E non esiste un buon modo per personalizzare l'icona della barra laterale dal 10.7.

In Yosemite Apple ha aggiunto alcune API per poter personalizzare il menu del tasto destro del Finder e l'elemento della barra degli strumenti, ma non sono sicuro della barra laterale.


A proposito di Yosemite, credo che Dropbox ora utilizzi un'estensione di sincronizzazione del Finder per integrarsi con il Finder ... ma non vedo nulla di ovvio nei documenti di quella funzionalità sulla fornitura di un'icona della barra laterale personalizzata (sono supportate le icone della barra degli strumenti personalizzate) ... Quindi l'hack potrebbe essere ancora in atto.
Dan J,

Certo, si chiama estensione di sincronizzazione del Finder. Ma non consente l'icona della barra laterale. Tuttavia ho letto la documentazione in diagonale, quindi probabilmente ho perso qualcosa.
Nickolay Olshevsky,

0

Il programma di installazione di Dropbox ne inserisce uno e il programma di installazione di Google Drive no.

Basta trascinare una cartella nella barra laterale e si attaccherà, non è necessario alcun programma di installazione.


10
Penso che la domanda riguardi specificamente l'icona.
asmeurer,

Sì, questo non risponde alla domanda
Baumr,

2
Darei un altro voto se potessi. È solo codice e il programma di installazione di Dropbox installa questa funzione quando viene eseguita in background. È come fare una festa e inviti due ospiti. Uno lascia il biglietto da visita sul comò, l'altro no. Non è il proprietario che ha fatto la scelta, sono gli ospiti che si sono comportati diversamente.
bmike

2
@bmike, la seconda parte della domanda era: "Come posso personalizzare le icone utilizzate dalle cartelle nella barra laterale?"
Baumr,

0

Sono stato in grado di ottenere l'icona Download nativa nella barra di sider per una cartella Download spostata. Il processo non è stato semplice ed è descritto qui: https://github.com/w0lfschild/colorfulSidebar_9/issues/1 Si basa su mySIMB e colorfulSidebar. 3 anni fa ho rinunciato a impostare l'icona Download nativa. Oggi ho deciso di dare un'altra possibilità e alla fine funziona.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.