Vai al contenuto





Maghetto

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

Recommended Posts

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

  • Love 1

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti


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/. 

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Ospite
Rispondi a questa discussione...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Crea Nuovo...

Info

Per offrirti il miglior servizio possibile il sito utilizza cookies, anche di terze parti e profilazione. Utilizzando il sito acconsenti al loro impiego. Privacy Policy Termini di utilizzo