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(手抜き感ぱなーい)

ファイルのラベルを変えるAppleScript

このAppleScriptはダイアログから選択したファイルの
ラベルを変えるものです。

tell application "Finder"
	set label index of (choose file) to 2
end tell

ラベルの色の指定は次のようになってます。
2行目の数字の「2」を下の数字に変えることで指定できます。
0:なし
1:オレンジ
2:レッド
3:イエロー
4:ブルー
5:パープル
6:グリーン
7:グレイ

label indexはFinderの要素なので
必ず
tell application “Finder” 〜 end tell
でくくってください。

AppleScriptからJavaScriptを実行する。

今回はAppleScriptちゃんに手をだしてみました。

例ではAdobe Illustratorのスクリプトを実行しています。

まず
下のコードをAppleScriptエディタにコピペして
別名保存でファイルフォーマットをアプリケーションにして保存します。

set ScriptPath to ((path to current application) & "Contents:Resources:Scripts:") as string
set jsx to ScriptPath & "sample.jsx"
tell application "Adobe Illustrator"
	do javascript file jsx
end tell

できあがったアプリケーション(アプレット)を
右クリックで「パッケージの内容を表示」でファイルを覗いてやると
次のようなフォルダ構造になってるのがわかると思います。

なので
[Scripts]フォルダというのがありますのでここにIllustratorのスクリプトをつっこんであげましょう。
(ここではsample.jsx)
[Contents]→[Resources]→[Scripts]

注意:AppleScriptを別名保存で保存し直すとフォルダ構成がリセットされスクリプトも消えちゃうのでスクリプトは必ずコピーしたものを入れてくださいね!

そしてアプリケーションのアイコンをダブルクリックしてやれば

はい、できました。

このやり方をすればどの環境でもスクリプトの置場に困ったりしないですね。