SSブログ

Table View(テーブルビュー)を使う(1) [AppleScript辞書はつくれるか?]

Table View(1) - 表示させてみよう-


ss19.png


テーブルビューとはザックリ言って『縦列』と『横列』のある表のようなものです。


 


表示させるためには何をしたら良いかを簡単にまとめると


(1)TableView オブジェクトを任意の場所にViewWindow内に設置する。


(2)表示データ管理用のArrayControllerをObject内に用意する


(3)データ受け渡し用のオブジェクト変数を用意し、Delegateを介してTebleViewとやり取りをするためつなげる。


(4)各要素を横軸に並んだエリア(Column)ごとに振り分ける。


(5)複数(または一つ)の要素ごとに収めたデータを作る。


(6)表示データをTableViewに渡す


 


●流れを図解で書くと


まず準備

ss0.png


ss1.pngss2.pngss3.pngss4.png


とりあえず、xib間でたどり着く


ss5.png


 

 


(1)TableView設置と(2)ArrayController設置

ss6.pngss9.png


もし下記のような簡易表示になっていたら、赤丸部分をクリックして詳細表示にしておく。


         ss7.png


 


 


今回はサブViewを使うのではなく、直接データをやり取りするので、”Call Based”に切り替えます。


要素のColumn数を変更したい場合は、すぐ下に見えるColumnsを変更してください。


ss8.png

 


次はApplescriptコードを入力しましょう。


appDelegate.applescriptを開きます。


ss10.png

 


そこに、下記の黄色の部分のコードを挿入します


 


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で右クリックするとメニュが出ます。


ss11.png


それぞれ、関連づけをしていきます。


 


・オブジェクトとしてArrayControllerを登録


ss12.png


 


・オブジェクトとしてTableView1を登録


ss13.png


 


・ボタンアクションとしてAction1を登録


[ss14.png


 


その後、ボタンアクション内容として下記の黄色の部分のコードを挿入します


 


    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)


ss15.png


 


その後、tebleViewのそれぞれのColumnにオブジェクトの中の要素を登録します。


ss16.pngss17.png


 


これですべて終わりました。


ビルド&RUNしてみましょう。


 


ss18.png


実行してもまだ何も表示されていませんね。


 


したのボタンをクリックみましょう


 


ss19.png


 


さぁ、表示されましたでしょうか?


今回は情報を表示するまででした。


 


 


 


 


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。