2010-03-27 1:45 pm

iPhoneのSafariのtextareaで文字数をカウントする方法 Edit

例えばtwitterアプリのような文字数制限のあるtextareaでは、よく「あと○○文字」とか文字数を数えて表示したりすることがある。先日仕事で、iPhone用のサイトで同じように文字数を数えて表示することが
あったんだけど、ちょっと変わったやり方をしたので紹介してみる。

仕様としては、文字を入力する毎に文字数を数えて、「あと○○文字」と表示するというもの。最初はkeyupを使ってPCのブラウザで確認してたんだけど、実機で試してみるとどうにも上手く動いてくれない。で、調べてみたところ、keyupのイベントはtextareaの内容が更新される前に呼びだされているらしい。
参考:Ajaxian » Safari on the iPhone update fixes and breaks events

なるほどと思い、さっそくsetTimeoutを設定して試してみるものの、英語キーボードの時は問題ないが、日本語入力の時にkeyupがreturnキーとbackspaceキーの時しか反応してくれない。

何か良い方法ないかなーとSafari向けのtwitterアプリサイトを見てまわってたら、Logpostというサービスで、実機の日本語入力時でもきちんと文字数を数えているのを発見。ちょっと失礼してソースを拝見させて頂いたところ、下記のようになっていた。

function count(e, l) {
if(! e) return;
var rc = l - e.value.length;
$('count').innerHTML = rc + ' left';
setTimeout("count($('" + e.id + "'), " + l + ")", 600);
}

setTimeout内で同じ関数を呼ぶことで、1秒おきに文字数を数えるようになっている。あとはonfocusとかでこの関数を呼びだすだけで、ほぼリアルタイムに文字数を数えることができる。

余談だけど、いろいろ調べているときに見つけたドキュメントに、javascriptからObjective-Cを呼び出す方法が書かれていた。意外な制限とかもあったりするけど、iPhoneSafariは夢が広がるなあ。

2009-06-20 9:44 am

iPhoneでオススメなアプリを挙げてみる Edit

僕がiPhone出てすぐ買ったときに、「それ、携帯でできるよ?」とかぬかしてた友人がiPhone3GSを買うらしい。
実際、発売された当時から比べれば、OSだけでも随分改善された。入力や機能追加はもちろん、電池の保ちも良くなったし、電波も結構早く拾うようになって、地下鉄ユーザ的には有り難い。

で、その友人が「オススメのアプリ教えてくれ」とのこと。一つ一つ教えるのは面倒なので、ここに書いておく。

NatsuLion
Twitterクライアント。機能はそこまで多くないけど、軽いしUIが好み。
ToyCamera
定番カメラアプリ。洒落た写真を撮りたいときに。
EasyCamera
写真ボタンを連打すると連続で写真が撮りまくれる。シャッター音が無いので盗撮しないように。
BB2C
2chブラウザ。UIが好評。
iWoopie
動画アプリ。あらかじめ動画をダウンロードしてローカルに貯めておけるので、好きなときに見れる。
ServersMan
iPhoneをwebサーバとして公開できるアプリ。いろいろ面白そうなんだけど、良い使い方を思案中。
FallingBalls
ゲームアプリ。落ちてくるボールを避けるシンプルなものだけど、面白い。
Q Calendar
画像にカレンダーを挿入出来るアプリ。祝日も色を変えてくれているので有り難い。

とりあえず、自分が薦めるのはこのくらいかな?
あまり知られて無さそうだけど、このアプリ良いよー!ってのがあれば、是非コメントお願いします。

2009-04-16 11:15 pm

livedoorクリップのマイクリップを表示 for iPhone Edit

というわけで、livedoor クリップのマイクリップをiPhoneに最適化して表示するページを作ったので、一応公開。

たいした事は全然してなくて、単にAPI叩いて、iPhone用のCSSを書いただけ。ただそれだけなんだけど、とりあえず、欲しかったのと公式はまだ対応してないっぽいので、作成した。

フォームにlivedoorクリップのIDを入れて、ボタンを押せばマイクリップが表示されるはず。ちなみにログインとかしてるわけではないので、プライベート設定しているURLは出て来ないのであしからず。

livedoor clip for iPhone