2012-09-13 14 views
10

partire in OS X 10.8 Mountain Lion, Safari crea un'icona dinamica durante il download di un file, come illustrato di seguito:Come creare un'icona "download" nel Finder su Mountain Lion 10.8?

: enter image description here

La barra di avanzamento mostra lo stato di avanzamento, e facendo clic sul pulsante in alto a sinistra vicino dice Safari per interrompere il download.

C'è un modo per un'app di terze parti per creare questo tipo di icona?

Suppongo che non ci sia un modo compatibile con App Store per farlo, ma sono curioso di sapere come farlo/come Safari lo fa solo per motivi di interesse.

risposta

0

Penso che sia parte di NSFileWrapper e potresti essere in grado di farlo con l'App Store. Non lo so.

NSFileWrapper *fw = [[NSFileWrapper alloc] initWithURL:fileURL, 
        // don't memory map, we only want to change the icon 
               options:NSFileWrapperReadingWithoutMapping 
               error:NULL]; 

[fw setIcon:updatedIcon]; 

noti che icon e setIcon fanno parte della categoria ApplicationKit, non l'implementazione NSFileWrapper principale Foundation: https://developer.apple.com/library/mac/#documentation/AppKit/Reference/NSFileWrapper_AppKitAdditions/NSFileWrapperApplicationKitAdditions.html

Edit: Ecco come si potrebbe avere una barra di avanzamento. Per rendere il pulsante di chiusura è necessario un riferimento NSView all'icona, come si può fare con le icone del dock.

Modifica 2: il browser WebKit fa anche questo (non solo Safari), quindi se scavassi attraverso la fonte probabilmente sarai in grado di trovarlo.

Modifica 3: Penso che sia fatto automaticamente da NSURLDownload. Potresti usare tu stesso quello stile se hai fatto un download falso che generava davvero il contenuto scaricato al volo. Non credo sia possibile fare un'icona arbitraria cliccabile, però.

+0

'NSURLDownload' è deprecato da macOS Sierra. – proxi

Problemi correlati