2011年1月9日日曜日

IMEを実装したい。その1

iPhoneでUITextViewにIMEを実装させたいのだが、
どのようにするのか、そもそも実装できるのか分からず模索中です。

MacだとInputMethodKitなるものがTigerから備わっており、
独自のIMEも作れる様子。(以下、勉強になったページ)
http://www.slideshare.net/kimuraw/inputmethodkit-3193813

しかし、iPhoneで一開発者のアプリがIMEを使えるのかまだ不明。
InputMethodKitはiPhoneでは使えるのだか、どうだか。。

ATOK Padでは独自IMEが動いていますが、独自でIME作るような力はないので(Social IMEも面白そうだが。)、もともと備わっているIMEが使いたい。

で、色々学習中です。
そもそも、iPhoneアプリ制作が初心者なので、いきなり敷居が高い気もするが、
一番まず実現したいことなので、かならず方法を見つけたい。

:::::::::::::::::::::::::

今のところ、UITextInput Protocolが近いものではないかと学習中。

しかし、ドキュメントを読みこなすのに、英語のおべんきょうが必要ですね。。


:::::::::::::::::::::::::

追記1:Erica Sadun女史のサイトにUIKeyboardImplについての記事がありました。
これも怪しい。。

:::::::::::::::::::::::::

追記2:このサイトの方が独自IMEについて言及しておられる。
http://d.hatena.ne.jp/chamekan/20100220
UIKeyboardImplに対してaddInputText: addInputString:@"watasi "などとスペース込みで送信してみると、ちゃんとIMEも働いてるようである。
とのこと。素晴らしい。
やっぱり非公開メソッドの様子ですが、なんとか実装まではこぎ着けられそうですね。

(わざわざ当エントリをご覧になって、修正および加筆までしてくださいました。大変ありがとうございました。)

:::::::::::::::::::::::::

追記3:
UIKeyboardImplに関しての追記。
http://www.hirano-dept.com/blog/2010/12/ipadmodal-uitextfield-resignfirstresponder.html
ここから、
http://stackoverflow.com/questions/2762251/how-to-hide-the-ipad-keyboard-from-a-modal-view-controller
ここへ飛び、
AppleがPrivate APIを使ったらリジェクトしないか、といったことを話しあっている。英語。
ちょっと参考になりそうだったので、メモを残します。

1 件のコメント:

  1. すみません、元記事の者ですが、メソッド名間違えて放置してました。
    addInputText: → addInputString:
    に修正してください。

    ついでに、ここの記事の最後に若干注釈つけてみました。
    http://d.hatena.ne.jp/chamekan/20100220#p1

    なお、個人的にこのメソッドを活用した実験プログラムは、以下参照。
    http://d.hatena.ne.jp/chamekan/20100731#p1
    ボリュームボタンでモールス信号で日本語入力。
    ソースとかないんですけど、多少おもしろいことができるという感触のために。

    それでは、失礼しました〜。

    返信削除