iOSアプリ上からユーザ辞書登録を行う方法

友人に質問されたので調査してみました。

かんたん辞書登録というアプリがアプリ上からiOSのユーザ辞書に登録を行えるのですが、公式のリファレンスを探してみたり適当にググってみたりしてみても、そのやり方の情報が見つかりませんでした。

そこでiOSのPrivate frameworkを探してみたところ、どうもそれっぽいメソッドがあったのでサンプルを作ってみました。

UserDictionaryTest

やっていることは非常にシンプルで、UITextFieldで入力された文字列を全選択した後に非公開APIである_addShortcut:を叩いているだけです。

1
2
3
4
[self.textField selectAll:nil];
if([self.textField respondsToSelector:@selector(_addShortcut:)]) {
    [self.textField performSelector:@selector(_addShortcut:) withObject:nil];
}

iOS6からテキストの範囲選択からユーザ辞書に登録する機能が追加されたので、恐らくこのメソッドが使われているんだと思います。実際、iOS5の端末では動作確認できず。

なお、_addShortcut:メソッド自体はUITextField以外に、UITextViewとUIWebViewにも生えていたのでこちらでも同様のやり方で辞書登録が可能だと思います(試してないけど)。

ただし、当然ながら非公開APIなのでこのメソッドを使った場合にAppleの審査に通る保証はありません。

ios

Comments