Table View(テーブルビュー)を使う(1) [AppleScript辞書はつくれるか?]
Table View(1) - 表示させてみよう-
テーブルビューとはザックリ言って『縦列』と『横列』のある表のようなものです。
表示させるためには何をしたら良いかを簡単にまとめると
(1)TableView オブジェクトを任意の場所にViewWindow内に設置する。
(2)表示データ管理用のArrayControllerをObject内に用意する
(3)データ受け渡し用のオブジェクト変数を用意し、Delegateを介してTebleViewとやり取りをするためつなげる。
(4)各要素を横軸に並んだエリア(Column)ごとに振り分ける。
(5)複数(または一つ)の要素ごとに収めたデータを作る。
(6)表示データをTableViewに渡す
●流れを図解で書くと
まず準備
とりあえず、xib間でたどり着く
(1)TableView設置と(2)ArrayController設置
もし下記のような簡易表示になっていたら、赤丸部分をクリックして詳細表示にしておく。
今回はサブViewを使うのではなく、直接データをやり取りするので、”Call Based”に切り替えます。
要素のColumn数を変更したい場合は、すぐ下に見えるColumnsを変更してください。
次はApplescriptコードを入力しましょう。
appDelegate.applescriptを開きます。
そこに、下記の黄色の部分のコードを挿入します
script AppDelegate
property parent : class "NSObject"
property arrayController : missing value
property theData : {}
property tableView1 : missing value
on action1_(sender)
(* この中は後で書きます *)
end action1_
-- IBOutlets
property theWindow : missing value
on applicationWillFinishLaunching_(aNotification)
-- Insert code here to initialize your application before any files are opened
end applicationWillFinishLaunching_
on applicationShouldTerminate_(sender)
-- Insert code here to do any housekeeping before your application quits
return current application's NSTerminateNow
end applicationShouldTerminate_
end script
上記のコードを入力した後でdelegaeで右クリックするとメニュが出ます。
それぞれ、関連づけをしていきます。
・オブジェクトとしてArrayControllerを登録
・オブジェクトとしてTableView1を登録
・ボタンアクションとしてAction1を登録
その後、ボタンアクション内容として下記の黄色の部分のコードを挿入します
on action1_(sender)
(* この中は後で書きます *)
set ans to {}
tell application "Finder"
set itemList to every item of (choose folder)
repeat with obj in itemList
set aName to name of obj
set aKind to kind of obj
set ans to ans & {{name1: aName, kind1: aKind}}
end repeat
end tell
set my theData to ans
end action1_
アクションが発生(ボタンをクリック)すると、このハンドラの中が実行されます。
なんでもよかったのですが、フォルダー選択ウインドウが出て、選ばれたフォルダの中身の名前と種類を表示するものです。
といっても、ここまでではボタンアクションが発生しても、フォルダを選択するだけでTableViewには表示されません。
前期のコードの中に、水色の部分があります。その部分の情報をTableviewに表示させるよう教えてやらなければなりません。
まず、ArrayControllerに中継させるオブジェクト変数を登録します。
ここでは、theData(my theData)
その後、tebleViewのそれぞれのColumnにオブジェクトの中の要素を登録します。
これですべて終わりました。
ビルド&RUNしてみましょう。
実行してもまだ何も表示されていませんね。
したのボタンをクリックみましょう
さぁ、表示されましたでしょうか?
今回は情報を表示するまででした。
コメント 0