2009-08-30 23 views
0

ich folgend AppleScript bisher habe:Werte in AppleScript auflisten?

# List of possible options to control the development environment. 
set WhatDoUWantToDoList to {"1", "2", "3", "4"} 

set MySites to {"test1", "test2"} 

# task selected 
set selectedTask to {choose from list WhatDoUWantToDoList with prompt "Pick your task now!!!" without multiple selections allowed} 

if selectedTask is equal to {"1"} then 
    display dialog selectedTask 
else 
    # site selected 
    set selectedSite to {choose from list MySites with prompt "Pick the site your working on!!!"} 

    if (selectedTask is not equal to false and selectedSite is not equal to false) then 
     display dialog selectedTask 
     display dialog selectedSite 
    else 
     display dialog "you messed up!" 
    end if 
end if 

I 1 in der Liste 1 Anzeige ausgewählt wird, werden nur die ausgewählte Aufgabe, aber wenn die Option sagen versuchen, wenn eine andere Option in der Liste 1 gewählt haben Sie gehe zum neuen Codeblock und muss eine Option in Liste 2 auswählen, wenn du in Liste 1 und Liste 2 annullierst, die du vermasselt hast.

Irgendwelche Ideen zu dem, was mir hier fehlt?

Antwort

0

mit diesem Code gearbeitet: wenn selectedTask „1“ enthält dann

5

{ } in AppleScript erstellt eine Liste, also wenn Sie selectedTask setzen, setzen Sie die Ergebnisse von choose from list in eine andere Liste. Wenn Sie versuchen, das Ergebnis mit {"1"} zu vergleichen, ist es eigentlich {{"1"}}, also ist es nicht gleich.

Verwenden Sie stattdessen die Klammern () für die Gruppierung.

+1

ich kann immer noch nicht bekommen es die Eingabe, wenn Block

 if selectedTask is equal to {{"1"}} then \t \t display dialog selectedTask \t else 
wenn 1 ausgewählt wird, sollte, dass ein, wenn Block für eine Aufgabe und zu stoppen, wenn ich es laufen läuft es immer noch beide Teile der if-Anweisung –

+0

Sie beheben das Problem an der falschen Stelle. Ersetzen Sie {} in 'set selectedTask zu {wählen Sie aus der Liste WhatDoUWantToDoList mit der Aufforderung "Wählen Sie Ihre Aufgabe jetzt !!!" ohne Mehrfachauswahl erlaubt} 'mit(). –

0

aus der Liste wählen, wird immer ein Array zurück, da Mehrfachauswahl möglich ist. Die Grundidee ist:

set selectedValues to (choose from list {"Value 1", "Value 2"} with prompt "Choose") 
if (selectedValues is not false) then 
    set selectedValue to item 1 of selectedValues 
    display dialog ("You chose " & selectedValue as text) 
else 
    display dialog ("You did not chose!") 
end if