Vai al contenuto

Salare Dati - App Mac linguaggio Swift


Messaggi raccomandati

Salve a tutti,

sono alle prime armi con la programmazione su mac, fino ad ora ho sempre utilizzato il vb.net per windows (tutto un'altro mondo). Nei mesi precedenti ho studiato un po swift e almeno ho capito molte cose però data la scarsa quantità di tutorial in rete sulla programmazione cocoa (si trova tutto relativo ad iOS) non so più dove sbattere la testa.

Allora cominciamo con la descrizione:

Sto creando una applicazione per la generazione di file URL una volta inserito il nome del file e l'url del sito.

Per ora ho inserito tre textfield e due button.

Cliccando sul bottone prendo il testo dalla prima textfield (l'url) e lo inserisco in una variabile che lo riporta nella terza inserendolo al posto di "sitourl"

[InternetShortcut]
URL="sitourl"

Avendo già creato l'applicazione in ambiente windows ho bene chiare le idee (se volete questo è il sito in cui la ho pubblicata: http://matmacsystem.altervista.org/sito/software-generatore-file-url/) quindi quello che mi manca da sviluppare su mac sono le seguenti parti:

-Una volta che il bottone ha inserito l'url nella terza textfield deve aprirmi il dialogo di salvataggio e salvare un file di estensione .url avente il nome contenuto nella seconda textfield e il contenuto che si è appena generato nella terza

-Resettare il contenuto delle caselle di testo

 

Spero che qualcuno mi possa aiutare magari con degli esempi

Grazie in anticipo a tutti :)

Link al commento
Condividi su altri siti

Salve a tutti,

sono alle prime armi con la programmazione su mac, fino ad ora ho sempre utilizzato il vb.net per windows (tutto un'altro mondo). Nei mesi precedenti ho studiato un po swift e almeno ho capito molte cose però data la scarsa quantità di tutorial in rete sulla programmazione cocoa (si trova tutto relativo ad iOS) non so più dove sbattere la testa.

Allora cominciamo con la descrizione:

Sto creando una applicazione per la generazione di file URL una volta inserito il nome del file e l'url del sito.

Per ora ho inserito tre textfield e due button.

Cliccando sul bottone prendo il testo dalla prima textfield (l'url) e lo inserisco in una variabile che lo riporta nella terza inserendolo al posto di "sitourl"

[InternetShortcut]
URL="sitourl"

Avendo già creato l'applicazione in ambiente windows ho bene chiare le idee (se volete questo è il sito in cui la ho pubblicata: http://matmacsystem.altervista.org/sito/software-generatore-file-url/) quindi quello che mi manca da sviluppare su mac sono le seguenti parti:

-Una volta che il bottone ha inserito l'url nella terza textfield deve aprirmi il dialogo di salvataggio e salvare un file di estensione .url avente il nome contenuto nella seconda textfield e il contenuto che si è appena generato nella terza

-Resettare il contenuto delle caselle di testo

 

Spero che qualcuno mi possa aiutare magari con degli esempi

Grazie in anticipo a tutti :)

Che vuol dire studiare un pò di swift? E' come dire studiare un pò di medicina!  E' un linguaggio di programmazione non un gioco.

Link al commento
Condividi su altri siti

Salve a tutti,

sono alle prime armi con la programmazione su mac, fino ad ora ho sempre utilizzato il vb.net per windows (tutto un'altro mondo). Nei mesi precedenti ho studiato un po swift e almeno ho capito molte cose però data la scarsa quantità di tutorial in rete sulla programmazione cocoa (si trova tutto relativo ad iOS) non so più dove sbattere la testa.

Allora cominciamo con la descrizione:

Sto creando una applicazione per la generazione di file URL una volta inserito il nome del file e l'url del sito.

Per ora ho inserito tre textfield e due button.

Cliccando sul bottone prendo il testo dalla prima textfield (l'url) e lo inserisco in una variabile che lo riporta nella terza inserendolo al posto di "sitourl"

[InternetShortcut]
URL="sitourl"

Avendo già creato l'applicazione in ambiente windows ho bene chiare le idee (se volete questo è il sito in cui la ho pubblicata: http://matmacsystem.altervista.org/sito/software-generatore-file-url/) quindi quello che mi manca da sviluppare su mac sono le seguenti parti:

-Una volta che il bottone ha inserito l'url nella terza textfield deve aprirmi il dialogo di salvataggio e salvare un file di estensione .url avente il nome contenuto nella seconda textfield e il contenuto che si è appena generato nella terza

-Resettare il contenuto delle caselle di testo

 

Spero che qualcuno mi possa aiutare magari con degli esempi

Grazie in anticipo a tutti :)

 

Resettare i campi è molto semplice, basta settare la relativa proprietà del textfield ad una stringa vuota (puoi referenziare i tuoi "oggetti grafici" tramite degli Outlet nel tuo ViewController).

Per quanto riguarda il richiedere all'utente la selezione di un percorso del file system devi utilizzare un componente chiamato NSSavePanel. Nella relativa pagina della documentazione troverai tutte le spiegazioni su come usarlo (si tratta comunque di poche righe di codice).

Link al commento
Condividi su altri siti

Resettare i campi è molto semplice, basta settare la relativa proprietà del textfield ad una stringa vuota (puoi referenziare i tuoi "oggetti grafici" tramite degli Outlet nel tuo ViewController).

Per quanto riguarda il richiedere all'utente la selezione di un percorso del file system devi utilizzare un componente chiamato NSSavePanel. Nella relativa pagina della documentazione troverai tutte le spiegazioni su come usarlo (si tratta comunque di poche righe di codice).

Sono riuscito ad inserire il pannello di salvataggio, ho impostato il nome del file uguale a quello contenuto in un textfield dell'interfaccia grafica e le caselle di testo sono perfettamente funzionate e collegate a dovere.

Ora mi rimangono due problemi:

1) Fare in modo che il NSSavePanel una volta cliccato salva mi crei il file in formato .url con all'interno scritto il contenuto di una textfield

2) Ho inserito anche due check box e volevo fare in modo che quando se ne selezioni una l'altra automaticamente si deselezioni.

Come posso fare per risolvere tutto ciò??

Link al commento
Condividi su altri siti

Sono riuscito ad inserire il pannello di salvataggio, ho impostato il nome del file uguale a quello contenuto in un textfield dell'interfaccia grafica e le caselle di testo sono perfettamente funzionate e collegate a dovere.

Ora mi rimangono due problemi:

1) Fare in modo che il NSSavePanel una volta cliccato salva mi crei il file in formato .url con all'interno scritto il contenuto di una textfield

2) Ho inserito anche due check box e volevo fare in modo che quando se ne selezioni una l'altra automaticamente si deselezioni.

Come posso fare per risolvere tutto ciò??

 

  • Una volta che hai richiamato il pannello di salvataggio, devi verificare prima di tutto che il risultato dell'NSSavePanel sia corrispondente a NSFileHandlingPanelOKButton. (Il dove e come fai questa cosa dipende dal metodo che hai usato per richiamare il pannello: come scheda, o come finestra a se stante -> trovi esempi e spiegazioni sulla documentazione ufficiale e nel web).

Una volta appurato che è stato premuto il tasto Salva, potrai accedere al percorso del file scelto accedendo alla proprietà URL (di tipo NSURL) del tuo savePanel.

Avendo a disposizione l'url di salvataggio su disco, puoi salvare il contenuto di una qualsiasi stringa tramite il relativo metodo writeToURL:Atomically: .

 

  • Una checkbox, in cocoa, non è altro che un nsbutton con uno stile dedicato. Si comporta pertanto come un qualsiasi altro pulsante. Ti devi pertanto creare delle IBOutlet delle due checkbox, così da poterle modificare da codice. Dopodichè ti crei una IBAction collegata alle action delle checkbox, e al suo interno verifichi di volta in volta quale sia la checkbox che è stata premuta, ne leggi lo stato (NSOnState / NSOffState) e di conseguenza modifichi lo stato dell'altra.

Il mio consiglio, comunque, è che essendo i due checkbox esclusivi a vicenda tanto vale, ed è ben più coerente con l'UI di sistema, utilizzare direttamente un gruppo di radiobutton.

 

es°

radio_button_examples_2x.png

Link al commento
Condividi su altri siti

 

  • Una volta che hai richiamato il pannello di salvataggio, devi verificare prima di tutto che il risultato dell'NSSavePanel sia corrispondente a NSFileHandlingPanelOKButton. (Il dove e come fai questa cosa dipende dal metodo che hai usato per richiamare il pannello: come scheda, o come finestra a se stante -> trovi esempi e spiegazioni sulla documentazione ufficiale e nel web).

Una volta appurato che è stato premuto il tasto Salva, potrai accedere al percorso del file scelto accedendo alla proprietà URL (di tipo NSURL) del tuo savePanel.

Avendo a disposizione l'url di salvataggio su disco, puoi salvare il contenuto di una qualsiasi stringa tramite il relativo metodo writeToURL:Atomically: .

 

  • Una checkbox, in cocoa, non è altro che un nsbutton con uno stile dedicato. Si comporta pertanto come un qualsiasi altro pulsante. Ti devi pertanto creare delle IBOutlet delle due checkbox, così da poterle modificare da codice. Dopodichè ti crei una IBAction collegata alle action delle checkbox, e al suo interno verifichi di volta in volta quale sia la checkbox che è stata premuta, ne leggi lo stato (NSOnState / NSOffState) e di conseguenza modifichi lo stato dell'altra.

Il mio consiglio, comunque, è che essendo i due checkbox esclusivi a vicenda tanto vale, ed è ben più coerente con l'UI di sistema, utilizzare direttamente un gruppo di radiobutton.

 

es°

radio_button_examples_2x.png

 

Lunedì appena avrò un po di tempo proverò

Intanto chiedo una cosa che mi è appena venuta in mente... Quando uso un qualsiasi elemento già configurato di xcode (Menù del programma che sto creando, NSSavePanel ecc...) sono tutti in inglese e non credo bisogni modificare scritta a scritta... Come se può impostare la lingua italiana (non xcode ma il programma che sto creando)????

Link al commento
Condividi su altri siti

Lunedì appena avrò un po di tempo proverò

Intanto chiedo una cosa che mi è appena venuta in mente... Quando uso un qualsiasi elemento già configurato di xcode (Menù del programma che sto creando, NSSavePanel ecc...) sono tutti in inglese e non credo bisogni modificare scritta a scritta... Come se può impostare la lingua italiana (non xcode ma il programma che sto creando)????

 

Di base l'applicazione è localizzata solo in inglese. 

Devi quindi abilitare la localizzazione in italiano:

  • Clicca sull'icona azzurra del progetto (la prima icona in alto nel Navigator, il pannello a sinistra con la lista di cartelle e file del progetto).
  • Clicca sul nome del progetto. Non sotto la voce Targets ma bensì sotto la voce Project.
  • Scrolla in basso nella pagina "Info" e verifica che ci sia il flag sulla voce "Use Base Internationalization". Se non è attivo, attivalo.
  • A questo punto sotto la voce delle localizzazioni attive, clicca sul tasto + e scegli "italian". Ti comparirà una lista di file da tradurre. Ipotizzo tu abbia attualmente solo una storyboard e i file AppDelegate e ViewController (più eventuali altri file di codice che ti sei creato). Se è così nella lista che ti apparirà dovrà esserci elencata solo la tua storyboard (l'unico elemento attualmente localizzabile). Conferma la creazione del file di localizzazione ed il processo è completato. Ora vedrai che il tuo NSSavePanel sarà localizzato in italiano (se questa è la tua lingua di sistema).
  • Ci sarebbero parecchie altre cose da dire riguardo la localizzazione, anche perché l'approccio corretto sarebbe quello di fare il design della tua storyboard in inglese, e tradurre le relative risorse in italiano. Il discorso comunque è un po' lungo e ti conviene andare a cercare la documentazione ufficiale riguardo la "Base Internationalization".

Sono andato un po' a memoria quindi potrebbe essere che alcune voci abbiano titoli leggermente diversi da quelli che ti ho indicato, ma credo che il senso del tutto si capisca. Nel caso se hai altri dubbi chiedi pure, siamo qui per questo ;-) .

Link al commento
Condividi su altri siti

Di base l'applicazione è localizzata solo in inglese. 

Devi quindi abilitare la localizzazione in italiano:

  • Clicca sull'icona azzurra del progetto (la prima icona in alto nel Navigator, il pannello a sinistra con la lista di cartelle e file del progetto).
  • Clicca sul nome del progetto. Non sotto la voce Targets ma bensì sotto la voce Project.
  • Scrolla in basso nella pagina "Info" e verifica che ci sia il flag sulla voce "Use Base Internationalization". Se non è attivo, attivalo.
  • A questo punto sotto la voce delle localizzazioni attive, clicca sul tasto + e scegli "italian". Ti comparirà una lista di file da tradurre. Ipotizzo tu abbia attualmente solo una storyboard e i file AppDelegate e ViewController (più eventuali altri file di codice che ti sei creato). Se è così nella lista che ti apparirà dovrà esserci elencata solo la tua storyboard (l'unico elemento attualmente localizzabile). Conferma la creazione del file di localizzazione ed il processo è completato. Ora vedrai che il tuo NSSavePanel sarà localizzato in italiano (se questa è la tua lingua di sistema).
  • Ci sarebbero parecchie altre cose da dire riguardo la localizzazione, anche perché l'approccio corretto sarebbe quello di fare il design della tua storyboard in inglese, e tradurre le relative risorse in italiano. Il discorso comunque è un po' lungo e ti conviene andare a cercare la documentazione ufficiale riguardo la "Base Internationalization".

Sono andato un po' a memoria quindi potrebbe essere che alcune voci abbiano titoli leggermente diversi da quelli che ti ho indicato, ma credo che il senso del tutto si capisca. Nel caso se hai altri dubbi chiedi pure, siamo qui per questo ;-) .

 

Scusa il ritardo della risposta ma non riuscivo ad entrare nel forum...

Intanto grazie perchè sono riuscito ad impostare la lingua italiana e questa è già una bella cosa :)

Poi per le check box ho risolto in un modo ancora diverso e funzionano quasi perfettamente.

Mi rimane sempre il problema dell'NSSavePanel, ho letto sia la documentazione ufficiale (e non ho capito molto di come funziona), mentre sul web non si trova praticamente niente (ho cercato pure in inglese ma 0)... Riusciresti a copiarmi un esempio pratico così magari capisco meglio?? (Te ne sarei veramente grato)

Link al commento
Condividi su altri siti

Scusa il ritardo della risposta ma non riuscivo ad entrare nel forum...

Intanto grazie perchè sono riuscito ad impostare la lingua italiana e questa è già una bella cosa :)

Poi per le check box ho risolto in un modo ancora diverso e funzionano quasi perfettamente.

Mi rimane sempre il problema dell'NSSavePanel, ho letto sia la documentazione ufficiale (e non ho capito molto di come funziona), mentre sul web non si trova praticamente niente (ho cercato pure in inglese ma 0)... Riusciresti a copiarmi un esempio pratico così magari capisco meglio?? (Te ne sarei veramente grato)

 

Ma il tuo problema quale sarebbe? Riguardo al come usarlo?

 

Questo è un esempio:

let savePanel = NSSavePanel()
savePanel.canCreateDirectories = true
savePanel.allowedFileTypes = [/* qui inserisci la lista di estensioni permesse */]
if savePanel.runModal() == NSFileHandlingPanelOKButton {
     if let fileURL = savePanel.URL {
         // E qui utilizzi l'URL del file per scriverci quel che vuoi
     }
}
Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...