Список значений в AppleScript? - PullRequest
0 голосов
/ 30 августа 2009

Пока у меня есть AppleScript :

# 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

Я пытаюсь сказать, что если в списке 1 выбран вариант 1, отображается только выбранное задание, однако, если в списке 1 выбран какой-либо другой параметр, необходимо перейти к новому блоку кода и выбрать параметр в списке. 2, если вы отменяете список 1 и список 2, который вы облажались.

Есть идеи, что мне здесь не хватает?

Ответы [ 3 ]

5 голосов
/ 30 августа 2009

{ } в AppleScript создает список, поэтому, когда вы устанавливаете selectedTask, вы помещаете результаты из choose from list в другой список. Когда вы пытаетесь сравнить результат с {"1"}, он на самом деле {{"1"}}, поэтому он не равен.

Используйте вместо скобок ( ) для группировки.

0 голосов
/ 08 октября 2009

Выбор из списка всегда возвращает массив, поскольку возможен множественный выбор. Основная идея:

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
0 голосов
/ 31 августа 2009

с использованием этого кода сработало: если selectedTask содержит «1», то

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...