リスト形式のダイアログを表示する方法です。
複数の選択肢を実行時にユーザーが選択できるようにするときに良く使います。
複数ボタンのメッセージダイアログでは最大で三個までしか選択肢を用意できません。
そのような時は、リスト形式にすると選択肢をたくさん使用できます。
リスト形式のダイアログを表示して処理を選択
-- リスト形式のダイアログを表示して処理を選択する
-- 以下のリストを任意に変更する
set myList to {"abc", "def", "ghi"}
choose from list myList default items "abc"
set mySelect to result
if mySelect = "abc" then
-- 以下を任意の処理に変更
log "abc"
else if mySelect = "def" then
-- 以下を任意の処理に変更
log "def"
else if mySelect = "ghi" then
-- 以下を任意の処理に変更
log "ghi"
else if mySelect = false then
return
end if
説明
最初に変数「myList」に表示したい文字列をリストとして入れておきます。
「{“abc”, “def”, “ghi”}」の部分が選択肢としてリストに表示される文字列になります。
「{“ゴマ塩”, “ロケット”, “七面鳥”}」といったように好きに変更して問題ありません。
次の「choose from list myList」の部分で変数「myList」に格納されたアイテムをリスト形式のダイアログとして表示しています。
「 default items 」の部分は、どの選択肢に最初にフォーカスが当たっているかになります。
上記では「”abc”」としているので「”abc”」にフォーカスが当たった状態でダイアログが起動します。
フォーカスが当たってるとキーボードの<return>キーで実行できるので、良く使うであろう項目にあてておくのが良いと思います。
続いて、「set mySelect to result」の部分は、変数「mySelect」に選択された値の情報を格納します。
続く「if ~ end if」は、押されたボタンに応じて処理を分けている部分です。
「mySelect = “abc” then」は変数「mySelect」に格納されているのが「”abc”」だったら、という意味なのでリストに格納する値を変更したら、ここも変更する必要があります。
「– 以下を任意の処理に変更」と書いてある下に、ボタンが押された後の処理を記載します。
今回の例ではログに選択された文字列と同一の文字を出力しているだけです。
最後の「if mySelect = false then」ですが、これは[キャンセル]ボタンが押された時の動作です。
[キャンセル]ボタンが押されると変数「mySelect」には「false」が入る為、この様な記載になっています。
そして、その後の動作の「return」は処理を抜けるという意味で、ここではスクリプト自体の終了動作をしています。
ちなみに「else if mySelect = false then」の部分は「else 」のみでも動作します。
この場合は、上の選択肢以外の物の場合という動作になるので[キャンセル]ボタンを押す以外にも、リストの数よりも分岐の数が少ない場合など指定した分岐以外全て終了処理になります。