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

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

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

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

“AppleScriptObjC を Cocoa/Objective-C アプリに統合する” の続きを読む

Kaku 1.3.6 リリース

Kaku のアイコンKaku 1.3.6 をリリースします。

ダウンロード

変更点

  • (修正)Snow Leopard 上での動作に対応(ご注意:一部の既存ユーザーの方には、動作に問題の出る可能性があります。詳しくは こちら
  • (修正)ココログ、JUGEM 、Seesaa、さくらのブログで、アカウント情報の読み込み時にアラートが表示され、読み込みの続行が不可能になっていた問題を修正(岡田ジャパン さん、せいちゃん さん、zounatsu さん、tarou さん、sasatch さん、Kazukazukazukai さん、blue さん、ありがとうございます)
  • (修正)FC2 ブログで、カテゴリーの読み込みを行うとクラッシュする場合があった問題を修正(ハズ さん、ありがとうございます)
  • (追加)RSD を利用した XML-RPC エンドポイントの自動設定機能を追加
  • (変更)再起動時に不自然な配置になる場合のあった一部ウィンドウの配置方法を変更
  • (変更)PHP Markdown Extra をバージョン 1.2.3 に更新

実に8ヶ月ぶりのアップデートとなります。大変遅くなりました。てか、今年一応アップデートを出せていたのですね。その時期はほとんど記憶がない…(涙)

“Kaku 1.3.6 リリース” の続きを読む

【重要】Kaku は Snow Leopard 上では起動しないでください

Kaku のアイコン実際には、文字通りの起動だけなら大丈夫なはずですが、アカウント情報や記事の読み込みを行うと、データ構造が変化して読み取ることが不可能になったり、データ損失の可能性があることが判明しましたので、大変申し訳ありませんが、Kaku の Snow Leopard 上での起動はお控えください ますようお願いします。

なお、もし Snow Leopard でアカウント情報や記事の読み込みを行ってしまっても、Leopard 上でデータの再読み込みを行えば、復活させることができる可能性があります。Kaku のデータは次の二カ所にありますので、ご確認ください。

  • ~/Library/Preferences/jp.lolipop.ppmweb.Kaku.plist
  • ~/Library/Application Support/Kaku

アップデートについてですが、非 Snow Leopard 関連の項目に関しては、修正と動作確認を終えています。Snow Leopard での動作の問題についてですが、Snow Leopard 上で操作してしまった場合も考慮に入れて修正することが困難な状況になってしまいましたので、大変申し訳ありませんが、Snow Leopard 上で初めて起動した場合と、最後に起動したのが Leopard 上である場合の正常動作を目指していく方針です。

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

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

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

サンプルコード

ClassMethodOrInstanceMethodScreenSnapz001

“クラスメソッドかインスタンスメソッドか” の続きを読む

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

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

XcodeScreenSnapz012

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

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

“Xcode 3.2 でテキストマクロを入力できなくなったら” の続きを読む

AppleScript で書いたクラスを ObjC から使う

XcodeScreenSnapz011

Snow Leopard では、AppleScript Studio の後を継いで AppleScriptObjC.framework が導入され、Cocoa の大半の機能を AppleScript から利用できるようになりました。

例えば、AppleScript から Cocoa/Objective-C のクラスを利用したり、AppleScript でそれらのクラスのサブクラスを作成できるようになりました(言い換えれば、作成しなければならなくなった …笑)。

少し残念なのは、前述の通り 「AppleScript から Cocoa の機能を利用する」ことに重点が置かれており、Cocoa/Objective-C の世界から AppleScript を利用する ことには(まだそんなに調べていませんが)重点が置かれていないようです。

ただ、AppleScript で書いたクラスも、アプリケーションの動作中には Objective-C のクラスとして存在するわけで、それにアクセスするのは、(ヒネた内部構造になっていなければ)さほど難しくないはず…。

というわけで作成したのが、今回のサンプルコードです。

サンプルコード

Kaku/Snow Leopard 互換性情報

Kaku のアイコン大変ご無沙汰しております。

当サイトで公開しているブログエディタ Kaku ですが、昨日発売された Mac OS X Snow Leopard 上で動作確認を行ったところ、少なくとも、

  • 「過去の記事を読み込む」ボタンを押すとアラートが表示され、過去記事を読み込むことができない

という問題が発生していることを確認しました。

アップデート時期をお約束することはできないものの、この問題の修正や、その他に問題がないかどうかの確認も含め、対応を行っていきますので、大変申し訳ありませんが、今しばらくお待ちください。

また、これまでにご報告いただいている不具合ですが、これらについてはすでに修正済みで、テストを行っている段階です。ご報告いただいた方々、ご協力ありがとうございました。

その他のアプリについて

当サイトで公開しているその他のアプリについてですが、Kaku に注力する意味もあり、今回は積極的に動作確認する予定はありません。万が一これらのアプリをお使いの方で問題を発見された場合は、当記事のコメント欄などでお知らせいただけると、大変助かります。

では。