Pagina 1 di 1
Intercettare valore button predefinito Applescript
Inviato: mer, 01 nov 2017 16:57
da Alessio Forconi
Salve a tutti,
mi sto scontrando con un problema in Applescript.
Probabilmente è anche stupido ma non riesco a farlo.
In pratica avendo questo
Codice: Seleziona tutto
display dialog "Si o No?" buttons {"Yes", "No"} default button 1 giving up after 5
dopo 5 secondi il button 1 (cioè Yes, giusto?) viene selezionato di default
Quello che vorrei fare è intercettare il valore che restituisce il button Yes
Se faccio così
Codice: Seleziona tutto
set the my_choice to the button returned of the result
if my_choice is "Yes" then
display dialog "Yes"
else if my_choice is "No" then
display dialog "No"
end if
non ottengo niente, segno che il valore resituito non è Yes nè No
È possibile fare quello che voglio?
Grazie
Re: Intercettare valore button predefinito Applescript
Inviato: mer, 01 nov 2017 19:19
da iStefano
Alessio Forconi ha scritto:Salve a tutti,
mi sto scontrando con un problema in Applescript.
Probabilmente è anche stupido ma non riesco a farlo.
In pratica avendo questo
Codice: Seleziona tutto
display dialog "Si o No?" buttons {"Yes", "No"} default button 1 giving up after 5
dopo 5 secondi il button 1 (cioè Yes, giusto?) viene selezionato di default
Quello che vorrei fare è intercettare il valore che restituisce il button Yes
Se faccio così
Codice: Seleziona tutto
set the my_choice to the button returned of the result
if my_choice is "Yes" then
display dialog "Yes"
else if my_choice is "No" then
display dialog "No"
end if
non ottengo niente, segno che il valore resituito non è Yes nè No
È possibile fare quello che voglio?
Grazie
se ricordo bene dovresti utilizzare i Booleans :
Yes = true
if != true
fai qualcosa
else
fai qualcosa
Re: Intercettare valore button predefinito Applescript
Inviato: mer, 01 nov 2017 19:28
da Alessio Forconi
Ahimè no, neanche con true o false funziona.
In realtà ho visto con
Codice: Seleziona tutto
display dialog "Si o No?" buttons {"Yes", "No"} default button 1 giving up after 5
set the my_choice to the button returned of the result
if my_choice is "Yes" then
display dialog "Yes"
else if my_choice is "No" then
display dialog "No"
else
display dialog my_choice
end if
che il valore restituito è " ", cioè niente.
Ovviamente in caso prema uno dei due bottoni tutto funziona correttamente.
Comincio a pensare non si possa fare
Re: Intercettare valore button predefinito Applescript
Inviato: gio, 02 nov 2017 09:05
da iStefano
Re: Intercettare valore button predefinito Applescript
Inviato: ven, 03 nov 2017 23:33
da Alessio Forconi
Dato che mi sono interstardito ho continuato a provare e ho trovato questo workaround che usa la clausola
gave up, che è quello che succede quando si lascia scorrere l'intervallo definito con
giving up after n
Codice: Seleziona tutto
set choice to display dialog "Scegli Si o No " buttons {"Yes", "No"} default button "Yes" giving up after 5
if (button returned of choice) is "Yes" or (gave up of choice) then
display dialog "Yes"
else if button returned of choice is "No" then
display dialog "No"
end if
In questo modo, ovviamente, dando Invio si sceglie attivamente e come predefinito "Yes" oppure "No" se si vuole, mentre lasciando finire il tempo di giving up la condizione
or (gave up of choice) agisce come se si fosse scelto "Yes".
In realtà però
giving up in n è solo un tempo dato trascorso il quale si chiude la display dialog senza intervento dell'utente e senza memorizzare alcuna scelta ed è in questo che consiste la limitazione, cioè che se anche mettessi
or (gave up of choice) su "No" questa non avrebbe valore perchè si ferma solo e sempre alla prima
or (gave up of choice) che trova nel blocco if.