# Etichetta (macOS)

Le etichette del sistema operativo macOS sono una tipologia di metadati, nello specifico sette distinti parametri colorati, che possono essere assegnati a file, cartelle e volumi nel sistema operativo. Questa funzione è stata introdotta con System 7 e mantenuta in tutte le versioni di Classic Mac OS. Con l'avvento di macOS, le etichette sono state eliminate dalle prime versioni del sistema operativo, per poi essere reintrodotte nella versione Mac OS X Panther.

## Caratteristiche

In Classic Mac OS, la scelta di un'etichetta virava interamente l'icona nel colore selezionato, portando ad una distinzione visiva molto efficace, ma anche alla perdita di dettagli nelle icone. In OS X, la rivoluzione dell'interfaccia Aqua ha portato a valorizzare particolarmente le nuove icone più grandi e fotorealistiche, e dunque a dover ripensare il precedente approccio.
In macOS, le etichette permettono di differenziare gli elementi colorandone il nome; l'evidenziazione viene mostrata in tutte le "viste" del Finder (a icone, elenco, colonne e Cover Flow). Ad ogni colore è associata una descrizione testuale (di default il nome del colore).
I colori disponibili sono sette:
* Rosso
* Arancio
* Giallo
* Verde
* Blu
* Viola
* Grigio
Questi non sono modificabili senza alterare file di sistema, ma il nome associato ai colori è personalizzabile a piacere nelle preferenze del Finder.
Le etichette, usate in congiunzione con le cartelle smart, permettono di organizzare facilmente i documenti sul proprio computer.
Questa funzione del Finder non è esente da difetti; tra i più vistosi nell'implementazione di OS X, se un file etichettato viene trascinato nel Dock non vi è modo di vedere il colore associato. Allo stesso modo il colore non appare nella funzione Stack introdotta nel nuovo Dock di Mac OS X Leopard.
MacOS definisce quattro colori di etichetta che variano nell'aspetto per implicare diversi livelli di importanza.
| Colore | Descrizione | Codice |
| Colore etichetta | Il colore di sistema utilizzato per il testo di un'etichetta. | class var labelColor: NSColor { get } |
| Colore etichetta secondaria | Il colore di sistema utilizzato per il testo di un'etichetta di minore importanza rispetto a un'etichetta normale ad esempio utilizzata per rappresentare un sottotitolo o informazioni aggiuntive. | class var secondaryLabelColor: NSColor |
| Colore etichetta terziaria | Il colore di sistema utilizzato per il testo di un'etichetta di minore importanza rispetto a un'etichetta secondaria ad esempio utilizzata per rappresentare il testo disabilitato. | class var tertiaryLabelColor: NSColor |
| Colore etichetta quaternario | Il colore di sistema utilizzato per il testo di un'etichetta di minore importanza rispetto a un'etichetta terziaria usata ad esempio per il testo della filigrana. | class var quaternaryLabelColor: NSColor |
Un utente dovrebbe essere in grado di copiare informazioni utili come un messaggio di errore, un numero di serie o un indirizzo IP da incollare in un'e-mail, in un documento o in un'altra posizione.

## Panoramica di sviluppo

Dichiarazione:
Esempio:
In caso di modifiche dinamiche alla vista dopo la rotazione del dispositivo o il passaggio a una dimensione della finestra, si potrebbe voler mostrare solo la parte di testo dell'etichetta utilizzando lo stile dell'etichetta: TitleOnlyLabelStyle
Al contrario, c'è anche uno stile di etichetta solo di tipo icona:
Alcuni contenitori potrebbero applicare uno stile di etichetta predefinito diverso, ad esempio mostrando solo le icone nelle barre degli strumenti su macOS e iOS. Per attivare la visualizzazione sia del titolo che dell'icona, si può applicare lo stile dell'etichetta: TitleAndIconLabelStyle
È inoltre possibile creare uno stile di etichetta personalizzato modificando uno stile esistente; questo esempio aggiunge un bordo rosso allo stile di etichetta predefinito:
Per una personalizzazione più ampia o per creare uno stile di etichetta completamente nuovo, è necessario adottare il protocollo e implementare uno stile per il nuovo stile. LabelStyleLabelStyleConfiguration
Per applicare uno stile di etichetta comune a un gruppo di etichette, si applica lo stile alla gerarchia di visualizzazione che contiene le etichette:
È anche possibile creare etichette utilizzando le viste per comporre l'icona dell'etichetta in modo programmatico, anziché utilizzare un'immagine predefinita.

### Temi
#### Creazione di un'etichetta da testo e un'immagine

* init<S>(S, image: String) crea un'etichetta con un'immagine icona e un titolo generato da una stringa. Disponibile quando Title è Text ed Icon è Image.
* init(LocalizedStringKey, image: String) crea un'etichetta con un'immagine icona e un titolo generato da una stringa localizzata. Disponibile quando Title è Text ed Icon è Image.
* init(LocalizedStringKey, systemImage: String) crea un'etichetta con un'immagine dell'icona di sistema e un titolo generato da una stringa localizzata. Disponibile quando Title è Text ed Icon è Image.
* init<S>(S, systemImage: String) crea un'etichetta con un'immagine dell'icona di sistema e un titolo generato da una stringa. Disponibile quando Title è Text ed Icon è Image.
* init(title: -> Title, icon: -> Icon) crea un'etichetta con un titolo e un'icona personalizzati.

#### Creazione di un'etichetta da una configurazione

init(LabelStyleConfiguration): crea un'etichetta che rappresenta la configurazione di uno stile.
Disponibile quando Title è LabelStyleConfiguration.Title e Icon è LabelStyleConfiguration.Icon.
struct LabelStyleConfiguration: le proprietà di un'etichetta.

#### Applicazione di modificatori standard

Configura le viste che contiene applicando i modificatori standard. Ogni tipo conforme al protocollo View ottiene l'accesso al set di modificatori di visualizzazione definiti da quel protocollo.