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
Immagine

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.