2010-06-03 12 views
13

Sto cercando di far associare automaticamente alcune estensioni di file ad esse aperte, ma non sono sicuro di come farlo in MacOSX. Non sto chiedendo come associare un programma con un'estensione di file nella GUI, voglio essere in grado di programmarlo nel mio programma.MacOSX - Estensione del file associata all'applicazione - Programmare

+0

questa domanda appartiene al nostro sito affiliato, Stack Overflow. sarà migrato lì a breve. –

risposta

11

Per registrare una nuova estensione di file con un'applicazione utilizzare il seguente comando defaults.
Sostituisci PUT_FILE_EXTENSION_HERE_WITHOUT_PERIOD con l'estensione del file i.e.txt.
Sostituisci org.category.program con il nome com/org del tuo programma, ad es. Com.apple.itunes.

$ defaults write com.apple.LaunchServices LSHandlers -array-add \ 
"<dict><key>LSHandlerContentTag</key> 
<string>PUT_FILE_EXTENSION_HERE_WITHOUT_PERIOD</string><key>LSHandlerContentTagClass</key> 
<string>public.filename-extension</string><key>LSHandlerRoleAll</key> 
<string>org.category.program</string></dict>" 


Dopo aver aggiunto l'estensione del file per i servizi di lancio, è necessario riavviare il demone dei servizi di lancio in modo che si ri-leggere il file di configurazione.

È possibile eseguire il comando seguente per riavviare i servizi di avvio o semplicemente riavviare il computer. Log in/log out potrebbe farlo ma non ho provato.

$ /System/Library/Frameworks/CoreServices.framework/Versions/A/Framework/LaunchServices.framework/Versions/A/Support/lsregister -kill -domain local -domain system -domain user 
7
+0

Collegamento errato. Presumibilmente questo è dove andare ora: https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-101685 –

-1

ho descritto il tutto in dettaglio https://moosystems.com/articles/8-double-click-on-files-in-finder-to-open-them-in-your-python-and-tk-application.html.

Ciò comporta il raggruppamento dell'applicazione tramite py2app, l'aggiunta di determinate chiavi al file Info.plist e l'installazione di gestori di eventi nell'app.

+0

Questo post parla di un'app Python (che si configura come app Mac). Potrebbe includere le informazioni necessarie, ma non sembra grattare direttamente il prurito. –

+0

Il comando di default menzionato nella risposta accettata sopra funziona bene, ma dovresti chiamare questo dopo l'installazione della tua app, mentre il collegamento della tua app a un suffisso come descritto nel mio articolo lo gestisce automaticamente ogni volta che copi l'applicazione in un Mac. Ma sì, il mio articolo descrive anche un processo di compilazione Python più ampio. D'altra parte, il processo sarà lo stesso per qualsiasi applicazione creata per macOS. –