Vai al contenuto

Xcode - Come implementare la Touch Bar in una app per macOS


Maghetto

Messaggi raccomandati

  • Admin

Implementare le funzionalità della Touch Bar in una applicazione per Mac è una cosa abbastanza semplice, come al solito Apple ha reso la vita degli sviluppatori abbastanza piacevole. Ecco un piccolo tutorial da usare come starter.

 

Nota: non è necessario avere un Mac con la Touch Bar per seguire questo tutorial.

 

1. Creiamo il nuovo progetto

Crea una Cocoa Application per macOS con Storyboard e linguaggio Swift (scegli il nome che preferisci, per esempio "ProvaTouchBar").

 

2. Aggiungiamo la Touch Bar

Vai in Main.storyboard, cerca "touch" nella libreria di oggetti e poi trascina l'item "Touch Bar" sul "Window Controller".

 

Ora trascina un controllo Touch Bar button sopra la Touch Bar che si è creata.

 

3. Creiamo un file che controlli la finestra che contiene la Touch Bar

Scegli File > New File e scegli Cocoa Class per macOS e clicca su Next.

 

Come nome, nel campo Class, metti "ClasseTouch" (è un nome a scelta, puoi mettere per esempio anche "WindowController" se poi vuoi usarlo anche per altri scopi) e come subclass scegli "NSWindowController", disabilita il checkbox "Also create XIB file for user interface.

 

Ora fai click su Create per creare il file.

 

Vai in Main.storyboard e nal rettangolo che rappresenta la Window (è scritto nella barretta), fai clic sull'iconcina blu rappresentante il Window Controller.

 

Ora nell' Identity inspector, nella sezione "Custom Class", inserisci nel campo Class "ClasseTouch" (o il nome che hai scelto, ti verrà proposto appena inizi a digitare).

 

4. Colleghiamo il pulsante della Touch Bar con un metodo IBAction per fargli fare qualcosa

Scegli il pulsante e clicca nell'icona dell'Assistent Editor (quello con l'icona con due cerci sovrapposti). Assicurati che si sia aperto il file ClasseTouch.swift (o come l'hai chiamato .swift), altrimenti sceglilo dai menu popup con il percorso dei file che c'è nella barretta sopra il code editor.

 

Con il tasto Control premuto, trascina dal pulsante della Touch Bar fino all'interno della classe "ClasseTouch" e crea un action:

 

Cita

    @IBAction func pulsanteTappato(_ sender: Any) {
              print ("Hai fatto tap")
    }

 

 

5. Eseguiamo un metodo presente nel ViewController invece che in ClasseTouch

Se vuoi che, invece che un metodo presente nella classe ClasseTouch, venga eseguito un metodo che hai creato per esempio nella classe ViewController, al posto dello statement "print ("Hai fatto tap")", inserisci questo:

 

Cita

    let vc = ViewController() // ottieni una istanza del ViewController
    vc.nomeDelMetodo() // il metodo presente nel ViewController 

 

 

6. Proviamo l'app

Se il tuo Mac non ha la Touch Bar, apri il simulatore di Touch Bar scegliendo: Window > Show Touch Bar dal menu di Xcode.

 

Prova il progetto, e buon divertimento con Swift e Xcode!

 

 

 

Hai domande su Swift e Xcode o ti piace aiutare gli altri?

Vai nella sezione dedicata a Xcode e Swift del forum.

 

E se ti piace parlare di Swift vieni a bere una birra allo Swift BAR!

 

 

 

 

touch2.jpg

Link al commento
Condividi su altri siti

  • Admin

Quando implementate la TouchBar in una finestra che ha anche un campo di testo, se questo è selezionato, verrà mostrata la touch bar standard invece della vostra touch bar personalizzata.

 

C'è un interessante post di Joecie Plinski che spiega come ci si può comportare in questa evenienza aggiungendo una estensione per la NSTextView (attenzione, proprio NSTextView, non NSTextField): http://www.joecieplinski.com/blog/2016/11/22/touch-bar-support-and-interface-builder/. 

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...