2015-04-07 10 views
5

Voglio usare Finder Sync Extensions esattamente come Dropbox come aggiungere l'icona della barra degli strumenti e aggiornare le icone dei badge durante la sincronizzazione utilizzando l'Objective C in Xcode.
Ho cercato in google molto ma non ho trovato alcun codice di esempio relativo a questo.Come integrare Finder Sync Extensions con Xcode in Cocoa

ho trovato solo un link per quella Finder Sync.

Ma io voglio sapere la procedura di esempio per integrare Finder Sync Estensione come un esempio o un codice per una maggiore comprensione.

Grazie in adv .. !!

+0

@Sheen Vempeny; il tuo post è la risposta; pubblicalo come tale e lo inviterò. ;-) – geowar

+0

Il link Finder Sync non è altro che un dolore. Fai tutti i passaggi indicati e niente funziona !!! Si prega di fornire alcuni passi migliori per raggiungere questo ... –

risposta

5

Io sono l'autore del codice Seafile's Finder Sync Extension. Grazie per postare il link al mio codice. Ho migliorato il lavoro straordinario del codice dalla prima pubblicazione.

L'architettura è molto più semplice di quella della programmazione dell'estensione di Windows Explorer. Per prima cosa devi dire a Finder (o FIFinderSyncController) quali directory vuoi guardare (tramite l'impostazione directoryURLs) e lo FIFinderSyncController effettuerà la richiamata tramite beginObservingDirectoryAtURL quando l'utente visita qualche directory in Finder. Quindi se i file specifici nella directory vengono visitati la prima volta dopo la chiamata requestBadgeIdentifierForURL, si verrà richiamati con requestBadgeIdentifierForURL. È necessario registrare queste informazioni se si desidera aggiornare il badge in un secondo momento. Infine puoi impostare il badge sui tuoi file quando possibile nella coda principale tramite setBadgeIdentifier.

Un'altra cosa importante da menzionare è, come dice il documento ufficiale, che l'estensione è in esecuzione in un altro processo (né i thread di Finder né quelli delle app) e parlando con Finder tramite XPC. E potrebbe essere necessario interagire con l'estensione tramite una sorta di IPC come porte XPC o Mach poiché è necessario che l'estensione sia in modalità sandbox.

Spero che questa informazione ti aiuti con il tuo codice.