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];

やってしまった

やってしまいました。同じ日にバグ修正版をリリースしました。なさけない…
メニューの編集項目である「Undo」を間違って「Cut」に割り当ててしまってました。すみません。ついでに画像ファイルをメモに貼り付ける事が出来ます。まぁこれは NSTextView のおかげなんですが。さらに NSTextView の凄い所が PDF ファイルをドロップすると内容が参照出来ました。なんと1ページ分だと思われる領域がスクロールしました。NSTextView が対応していないファイルはアイコンが表示されます。クリックしても何も起こりませんが。テキストタイプのファイル及び拡張子が text , txt のファイルは内容が挿入されます。これは私ね。内容がテキストでもファイルの情報でテキストになって無いのは駄目です。

QueueMemo新バージョン

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

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

iPod Touch ってマウントしないのかぁ

iPalmMemo のメモを iPod Touch のメモ帳へ転送、と言うか同期したかったのですが。なんと今までの iPod と違ってマックに接続しても iTunes に表示されるだけで HD としてマウントする設定が有りませんでした。これじゃぁ iPod の時の様にコピー出来ないじゃぁ無いですか。で、iTunes で同期する項目を見てみると、なんとアドレス帳や予定は有るのにメモ帳が無い。またしても拒否されてしまった。
しかたないので同期に関しては Apple のバージョンアップを待つことにしました。Apple の同期は Sync Services を使います。iPod は Palm、携帯電話 等と同じく iSync で同期します。しかし iPod Touch は異なるようです。ちょっと調べてみると AppleMobileSync.app と AppleMobileDeviceHelper.app で行っている様です。Helper の方は常に起動していて接続を検出しているのでは無いでしょうか?
AppleMobileSync.app が同期する種類、項目には iTunes で設定出来る種類、項目が指定されていましたが、やはりメモに関しては記述が有りませんでした。 AppleMobileSync.app 内の定義ファイルを調べれば分かるはずです。私は Developer をインストールすると使用できる Syncrospector.app を使って調べました。これは、どのプログラムがどんな項目を同期しているのか、いつ同期したのか、等いろいろと見ることが出来るアプリケーションです。

iPlamMemo の事に戻って、Mail.app のメモ帳とも同期したかった事も有り、Sync Services を使ったテストプログラムを作成して色々とテストしています。もし iPod Touch のメモ帳が Mail.app のメモ帳と同期できる様になったら iPlamMemo のメモとも同期出来るので、いいかも。でも Mail.app のメモ帳って HTML なんですよねぇ。iPalmMemo と同期する時の問題としては HTML 以外にカテゴリの問題が有ります。なので、現状では特定のカテゴリを同期する方向で考えています。

QueueMemo は Leopard で変な動きをする様になったから対応しないといけないし、もう少し使いやすい様にしたいし、iPalmMemo のコンジットでバグが有って先日やっと修正したし、MissingSync のコンジットの方が開発しやすいので全部移行したいけど無理だし、モーションエディタも画面からぐりぐり出来る奴を開発したいし、、、
まぁ最近はちょっとモチベーションも上がって来たので少しずつリリース出来るのでは、と考えています。
(最初 iPod Touch で日本語の入力方法を知らなくて入力出来なかったのは内緒)

I Love Macintosh