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_なるものも見つけた。これはテキストカラーを変更するものに違いない。
とりあえず、使いたい書式はだいたいわかった。
上部に設置してあるのは、サンプルで使ったものなので気にしないでOK.
ボタンをクリックすると、
Evernoteから取得したタグが表示される。
まったく望み通りの表示ではないが、とりあえず骨子はできた。後は、アレンジだ。