GameSprit

自転車やMac・AppleScript、映画・小説やドラマのレビュー、備忘メモ・クイズなどを置いています。

AppleScript : display dialog の表示と返り値

2009-11-14 17:03:03 | AppleScript
Mac OS X 10.6、Snow Leopard になったので、AppleScript をおさらいしてみます。
AppleScript エディタの操作性が良くなっていて、少し楽になりましたね。


ダイアローグ表示

シンプルにメッセージを表示します。







『buttons』オプションを使うと、メッセージに対し、ユーザーが選択できるボタンを表示します。







『default button』オプションを使うと、『buttons』オプションで設定したボタンにデフォルトの選択を設定します。





上の画像では分かりませんが、『101』が青色に反転してデフォルト表示されます。
リターンキーを押すと、『101』をクリックするのと同じ結果になります。



『with icon』オプションで、ダイアローグ内の左にアイコンを表示します。







『giving up after』オプションで、ダイアローグを表示し、指定した秒数内に反応がないとダイアローグを閉じます。





ユーザー反応(返り値)の取得

直前の結果が反映される『result』変数を使うことで、返り値を取得します。



上の例では直前の操作結果(『101』をクリックした)が『{button returned:"101", gave up:false}』というリスト形式で、tmp という変数に格納されます。

どのボタンがクリックされたかという結果を取得するには、戻り値のリストから『button returned』というリスト項目を取り出します。(リストからリスト項目の値を取り出すのは、リスト項目名 of リスト)



上の例では tmp に格納されている『{button returned:"102", gave up:false}』から 『102』という値を取り出しています。
その結果は変数 btn に格納。

『giving up after』オプションが機能したかどうか(つまり、ユーザーがボタンをクリックしなかったかどうか)は、 tmp に格納されている結果リストから『gave up』というリスト項目の値(下の例では『false』)を取り出します。
その結果は変数 gu に格納。





ユーザーへの確認のため、取り出した結果を表示させます。(テキスト同士をつなぐには『&』を使います。ここでは、『ボタン :』というテキストと、tmp に格納されている『102』というテキストを『&』でつなぎました)







位置合わせの整形には、tab を使います。






ユーザーがボタンを押しただどうかの反応を、同様に表示します。







2つの結果をまとめて表示しましょう。
『return』を使えば、改行できます。(& return &)







ところで、display dialog で表示するメッセージテキストを変数で持っておくことができます。





ボタンもリスト形式で変数で持っておけます。




最終のソース:
set ddmsg to "表示するテキスト"
set btnList to {"101", "102", "103"}

display dialog ddmsg buttons btnList default button 1 with icon 2 giving up after 2

set tmp to result
set btn to button returned of tmp
set gu to gave up of tmp

display dialog "ボタン :" & tab & btn & return & "入力反応:" & tab & gu




MacScripter の投稿(MacScripter / Icons in "display dialog"....) を参考にして、『with icon』オプションで表示するアイコンを好みのものに設定できます。

汎用的にスクリプトが動くようにするには、標準の場所にあるものがいいですね。
ここでは、AppleScript エディタのパッケージ内(つまり、AppleScript エディタに含まれている)アイコンを使ってみます。

AppleScript エディタを右クリックして『パッケージの内容を表示』します。




『SEPlugin.icns』というのを使ってみます。




表示されました。




ソース:
display dialog "OK ?" with icon alias ((path to me) & "Contents:Resources:SEPlugin.icns" as string) buttons {"Cancel", "OK"} default button 2



AppleScript 2.1 Help: display dialog
AppleScript 0005 - Display dialog ボタンの結果の取得 - GameSprit



最新の画像もっと見る

post a comment

ブログ作成者から承認されるまでコメントは反映されません。