ASOC(AppleScriptObjC)とTextFieldと私

前回はASOCでボタン用のハンドラ作って
IllustratorのJavaScript動かすのをやってみたけど

今度はWindow上のTextFieldにAppleScriptから文字を出力するようなものをつくってみようとおもう。
まずはいつもどおりMainManu.xibのウィンドウにテキストフィールドとプッシュボタンをObjectLibraryからドラッグして配置

AppDelegate.applescriptの

property parent : class “NSObject”の下あたりに
property TextField : missing value
の1行を追加してプロパティTextFieldを宣言。
missing valueは初期化されていない値(AppleScript)
Objective-Cのnilのかわりらしい。
初期化みたいなものかな。

そして前にやったようにプッシュボタン用のハンドラPushButtonを用意。

on PushButton_(sender)
end PushButton_

そしてApp DelegateのConnections inspector(右クリックでもでる)の
OutletsにTextField
Received ActionsにPushButton
が追加されているはずなので

TextFieldからウィンドウ上のテキストフィールドに
PushButtonからウィンドウ上のプッシュボタンにドラッグすると
接続完了。
接続できるとこんな感じになるとおもう↓

接続ができたらプッシュボタン用のハンドラPushButton内に
下の一行を追加

set stringValue of TextField to “へろーわーるど”
AppleScriptの文法で
TextFieldのstringValueに文字列「へろーわーるど」をセットするっていうことですね。

on PushButton_(sender)
set stringValue of TextField to “へろーわーるど”
end PushButton_

これで完成。

実行!!


無事プッシュボタンをクリックすることでウィンドウ上のテキストフィールドに「へろーわーるど」が表示されました。

たいしたことやってないけど積み重ねだよね。(たぶん
ちょっとずつがんばっていこー。

関係ないけどなぜかWordPlessでのプラグインWP SyntaxHighlighterが使えなくなった。
WordPlessの更新のせいかな、、、

ASOC(AppleScriptObjC)からIllustrator JavaScriptを実行してみた

Objective-Cの勉強でもんもんしてきたため息抜きに
ASOC(AppleScriptObjC)からIllustrator JavaScriptを実行してみた。(げんじつとーひ

AppleScriptとObjective-Cの「悪魔合体」のことをちまたではASOCってよぶらしいよ!
今回はIllustrator JavaScriptも合体させて「三神合体」とでもよぼうか。。(どーでもいい

よーはCocoaからAppleScriptを実行して、さらにIllustrator JavaScriptを実行しようというわけ。。

問題はXcode上でJSXファイルを他のファイルと同じところにぶっこんだらどうなるかってことなんだけど、、

ためしにぶっこむ!
そしてビルドして生成されたファイルのパッケージの中身を覗いてやると
思ったとおりResourcesフォルダにはいってるらしい。

なのでアプリケーションのフォルダのパスを
path to current application
で調べて
Contents:Resources:
もつけてやればたぶんOKかなと、、、

on AiScript_(sender)
	set ScriptPath to ((path to current application) & "Contents:Resources:") as string&"AiScript.jsx"
	tell application "Adobe Illustrator"
		activate
		do javascript file ScriptPath
	end tell    
end AiScript_

こんな感じのハンドルを作ってXcodeからボタンに割り当てるようにしてみたよ。
そして実行!


ほーーらね。無事Illustrator JavaScriptが実行されましたよ!
めでたしめでたし。
わーいわーい。

かんたんなのはこれでできるねw(手抜き感ぱなーい)