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

Crea un account o accedi per lasciare un commento

You need to be a member in order to leave a comment

Crea un account

Iscriviti alla nostra comunit√†. √ą facile!

Crea un nuovo account

Accedi

Sei già iscritto? Accedi qui.

Accedi Ora

  • Contenuti simili

    • Da prinzart
      Ciao ho letto da pi√Ļ utenti che l'ultima versione di xcode √® pesante e lenta, dove posso quindi scaricare una versione precedente a questa odierna?
       
      Grazie
    • Da LuigiSetola
      Salve a tutti, sto cercando di creare un'app in swift che permette la visione di alcune immagini pubblicate sul mio sito web. Cosa devo usare per fare ció? Mi baso sui feed rss, oppure tramite un database? Il sito è fatto con wordpress.
      Grazie a tutti in anticipo
  • Statistiche forum

    528917
    Discussioni Totali
    6332404
    Risposte Totali
  • Statistiche Utenti

    122023
    Utenti totali
    14120
    Record utenti online
    Alberto Maggi
    Nuovo iscritto
    Alberto Maggi
    Iscritto
  • Statistiche annunci

    104
    Annunci attivi
    18
    Domande
    0
    Recensioni
    0
    Offerte
√ó