ジャムスタ

just another mind Style

Xcode + AppleScript に手を出した

基本的に、スクリプトAppleScriptエディタで書いているのだが、ウィンドウとテキストフィールを使うアプリが作りたくなった。

Xcodeの出番だ。

cocoa + AppleScirpt。

が、日本語の資料があまりない。とりあえず手探りで始めてみる。

Writing the Code | Building a Basic AppleScriptObjC (Cocoa-AppleScript) Application with Xcode | Peachpit

まず、ここの通りに行う。あまり理解できていないが、ある程度はわかった。

まず、

property textField : missing value

で、オブジェクトっぽいものを宣言するのだろう。

で、ボタンを押したときの動作を記述。
 
on buttonClicked_(sender)
display alert "Hello there " & (stringValue() of textField)
end buttonClicked_

「display alert」は見慣れたキーワードだが、stringValue() of textFieldも、なんとなく推測が付く。先ほど宣言した、textFieldが持つ、「stringValue()」を使っちゃいますよ、ということだろう。で、その「stringValue()」は、おそらく自身のstringValueの値をひっぱってこい、というコマンドだと想像される。

アプリの動作からするに、それがテキストフィールドに納められているテキストなのだろう。

で、コードを記述しおえたら、さらにページの指示通りに、コネクトを進めていく。App Delegateが中心になるようだ。

やるべきことは、(ウィンドウに設置した部品としての)テキストフィールドと、先ほど宣言したtextfieldを関連づけること。あと、設置したコマンドボタンの動作を、先ほど記述した on buttonClickedと結びつけること。この二つ。

書いてある通りにやれば、できた。

さて、ここからが問題だ。

私がやりたいことは、とある内容を、テキストフィールドに表示することだ。であれば、テキストフィールドからテキストを持ってくる命令ではなく、テキストフィールドにテキストを設定する命令が必要だ。

再び検索すると、setStringValue_()に遭遇した。

textField's setStringValue_(hogehoge)

のような形で記述するらしい。

おそらく書式は一定していて、set〜_みたいななのがいくつもあり、それでプロパティー的なものを設定していけるのだろう。たぶん。

一緒に、setTextColor_なるものも見つけた。これはテキストカラーを変更するものに違いない。

とりあえず、使いたい書式はだいたいわかった。

f:id:Rashita:20140303115948p:plain

上部に設置してあるのは、サンプルで使ったものなので気にしないでOK.

ボタンをクリックすると、

f:id:Rashita:20140303115945p:plain

Evernoteから取得したタグが表示される。

まったく望み通りの表示ではないが、とりあえず骨子はできた。後は、アレンジだ。