「Mac」カテゴリーアーカイブ

環境設定ファイルを読む

と言っても自分の環境設定ファイルでは無く他のプログラムのです。自分ので有れば NSUSerDefaults で出来ますから。NSString で読み込んで propertyList で NSDictionary にセットしようとプログラムを書いて実行してみると、なんと NSString での読み込み時にエラーとなってしまいます。あれ〜?環境設定ファイルって普通の XML 形式じゃぁ無かったっけ??

調べる為にネットの海へダイブ、じゃ無くサーフィン。10.3 迄は普通のテキスト XML だったらしい、が 10.4 からバイナリ plist だそうな、ふーん。どうすれば良いの??

テキスト形式とバイナリ形式を相互に変換するコマンドが有るそうです。plutil これでバイナリ形式からテキスト形式にして読み込めば当初の目的が実現できる。ただ plutil はコマンドツールなので NSTask と NSPipe を使って plutil の出力を標準出力に指定して実行し NSPipe で標準出力設定した pipe から読み込む、っと。

実際に実行してみると、小さい環境設定ファイルだと NSTask の waitUntilExit で終わるのを待ってから読み込めるのですが、大きい環境設定ファイルだと何時まで経っても処理が帰って来ません。とりあえず waitUntilExit をしないで実行すると読めたんですが、正しくはどうするんだろう?

いい加減なQuickLookの作成方法

iPalmMemo 1.2.0 をリリースしたので、ちょっと気分を変えて以前少しだけ書いた QuickLook の作成方法を書いてみます。ただ、適当な作成方法なので雰囲気を知るくらいです。

Apple のドキュメントに Quick Look Programming と言うのが有りますが、私には読むのは無理なので適当にソースを見ながら作成します。大体サンプルとして Sketch と言うのが難しすぎます。記述自体は少ないのですが、元の Sketch のソースが膨大だし、そんなのを引っ張ってこられても「なんのこってすか?」状態になります。
まぁ愚痴はほどほどにして、まず Xcode で新規プロジェクトを作成します。タイプは「Standard Apple Plug-ins」の「Quick Look Plug-in」を指定します。

続きを読む いい加減なQuickLookの作成方法

iPalmMemo新しい機能

もう少しでリリース出来そうな所まで来ました。新しい機能は以前にも書きましたが Mail.app のメモに対して読み込んだり、書き込んだりです。
何故同期じゃぁ無いんだ!と思われますよね、それは前にも書いた様に Mail.app のデータは HTML で書かれているのと HTML なので画像ファイルとか文字列以外のデータが有るので私には難しすぎる、と言う事で勘弁して下さい。

iPalmMemo には文字列のみ読み込んだり、書き込んだりします。書き込みの時は Mail.app のメモと似た HTML にして登録します。なので、見た目はまあまあ同じ様になるはずです。また、メモを選択した状態で書き込みが可能となります。つまり1メモづつです。読み込み時のカテゴリは「未分類」となります。

メニューから読み込み・書き込みを選んだらウインドウが表示されます。そのウインドウ内のメモは Mail.app のメモと同期しています。なので Mail.app で新規登録・変更・削除すると暫くして(数秒)ウインドウに反映されます。

もう少しテストとか Intel マックでのテストとかした後リリースする予定です。

NSTextView に画像などのファイルを貼り付ける

NSTextView に画像を貼り付ける方法。
まず貼り付けるファイルを元に NSFileWrapper を作成します。

NSFileWrapper *wrap = [[NSFileWrapper alloc] initWithPath:path];

で、これから NSTextAttachment を作成します。

NSTextAttachment *attachment = [[NSTextAttachment alloc] initWithFileWrapper:wrap];

さらに貼り付ける画像の為の NSAttributedString を作成します。

NSAttributedString *attachChar = [NSAttributedString attributedStringWithAttachment:attachment];

一文字の貼り付けるファイルの為の NSAttributedString が出来ました。
この attachChar を NSTextView から取り出した NSAttributedString の貼り付けたい位置に挿入しても良いですし、これから NSTextView にセットする NSAttributedString の何処かに挿入しても良いです。

【例】文字列の最初に貼り付けます
NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:@”画像ファイル”];
[attrString beginEditing];
[attrString insertAttributedString:attachChar atIndex:0];
[attrString endEditing];

[[mTextView textStorage] setAttributedString:attrString];

QueueMemo新バージョン

Leopard になって QueueMemo の動きが変なので調べている時に機能変更もしたくなって、現在進行中。当初から編集モードと参照モードが有るのが嫌だったのですが、私の能力不足も有って仕方なくそうしたのです。今回は思い切ってモードを無くします。無くすことで HTML モードもばっさり切り捨てます。Mac OS X に標準添付されている「スティッキーズ」に限りなく近づいてます。現状での違いはウインドウに張り付く事、画像などのファイルは貼り付ける事が出来ない、くらいかな?。

新しい事がしたくなって QuickLook を作成してみました。iPalmMemo 用のを作成したんですが、元々内容がメモ(PlainText)なので、あまり意味がないですけど。まぁ作成手法と言うかお勉強ですね。