AppleScriptObjC を Cocoa/Objective-C アプリに統合する

Snow Leopard 登場後、いきなり超応用編からスタートしたこの AppleScriptObjC シリ ーズ(?)ですが、今回でひと区切りとさせていただきたいと思います。

もっと基礎的な部分に関しては、本家が出す、と言っているサンプルコードやドキュメントにお任せたいところですが、あまり期待できないので、精力的にサンプルコードをアップしている MacScripter / unScripted などをご参照ください。あるいは、何かリクエストをください。

最後は、Cocoa/Objective-C アプリで AppleScriptObjC を使えるようにする というお話。プロジェクト設定レベルのことなので、技術的な意義はあまりありませんが、よろしければご覧ください。

Continue reading

クラスメソッドかインスタンスメソッドか

AppleScriptObjC に関しては、風のウワサで「何でもできるよ!」と聞いてはいたのですが、Cocoa/Objective-C と AppleScript の両方やっている身からすると、触っていくうちにそこかしこで「え? Cocoa のあれどうやってやるの?」という場面に遭遇します。

ふと思ったのが、AppleScript のクラスでどうやってクラスメソッドを定義するのか ということです。ひとまずの結論としては、クラスメソッドとして呼びたければそのように、インスタンスメソッドとして呼びたければそのように呼べばいい ようです。

サンプルコード

ClassMethodOrInstanceMethodScreenSnapz001

Continue reading

Xcode 3.2 でテキストマクロを入力できなくなったら

Xcode では、「編集」→「テキストマクロを挿入」メニューから、あるいは、定義された短縮キーワードを入力した後オートコンプリートさせることによって、テキストマクロを入力することができます。例えば「init」なら init メソッドの定義、とか:

XcodeScreenSnapz012

テキストマクロの内容は、/Developer/Applications/Xcode.app/Contents/PlugIns/TextMacros.xctxtmacro/Contents/Resources/ 以下の *.xctextmacroファイルで定義されており、私はこれを改造して使っていました。

どマイナーな機能だと思うので、ここまでで「それ何の話?」 という方もいらっしゃるかもしれませんが、その説明はまたの機会として(おい)、Xcode 3.2 にしてから前述の短縮キーワードによる入力ができなくなり、とてもしんどいので調べてみました。

Continue reading