複数ボタンのメッセージダイアログを表示する方法です。
Applesriptでは、ダイアログに最大で三個までボタンを表示できます。
複数の選択肢を実行時にユーザーが選択できるようにするときに良く使います。
リスト形式にするともっと多くの選択肢が選べるようになりますが、そのようにすると項目を選択してから[OK]ボタンを押すという二段階の操作が必要になります。
その点、この複数ボタンを使うと選択肢のボタンを押すという一操作で済むので、選択肢が少なくてよい場合はこちらをお勧めします。
複数ボタンのメッセージダイアログを表示
-- 複数ボタンのメッセージダイアログを表示
-- 以下のメッセージとボタン名を任意に変更する
display dialog "このメッセージを変更" buttons {"abc", "def", "ghi"} default button 3
set BtnReturned to result
set SelectBtn to button returned of BtnReturned
if SelectBtn = "abc" then
-- 以下を任意の処理に変更
log "abc"
else if SelectBtn = "def" then
-- 以下を任意の処理に変更
log "def"
else if SelectBtn = "ghi" then
-- 以下を任意の処理に変更
log "ghi"
end if
説明
最初の「display dialog 」がメッセージダイアログの表示です。
「このメッセージを変更」となっている部分はダイアログに表示されるメッセージなので、自由に変えてください。
例えば「処理を選択してください。」とかです。
「 buttons {“abc”, “def”, “ghi”}」の部分はボタンの数とボタンに表示される文字列になります。
「 buttons {“はい”, “いいえ”, “黙秘”}」といったように好きに変更して問題ありません。
「 default button 」の部分は、どのボタンに最初にフォーカスが当たっているかになります。
上記では「3」としているので三番目のボタン「”ghi”」にフォーカスが当たった状態でダイアログが起動します。
フォーカスが当たってるとキーボードの<return>キーで実行できるので、良く使うであろう項目にあてておくのが良いと思います。
続いて、「set BtnReturned to result」の部分は、変数「BtnReturned」に押されたボタンの情報を格納します。
そして「set SelectBtn to button returned of BtnReturned」で変数「SelectBtn」に押されたボタンの文字列を格納します。
続く「if ~ end if」は、押されたボタンに応じて処理を分けている部分です。
「SelectBtn = “abc” then」は変数「SelectBtn」に格納されているのが「”abc”」だったら、という意味なのでボタンの表示文字列を変更したら、ここも変更する必要があります。
「– 以下を任意の処理に変更」と書いてある下に、ボタンが押された後の処理を記載します。
今回の例ではログに選択された文字列と同一の文字を出力しているだけです。