今回はUIReferenceLibraryViewControllerと言う死ぬほどマイナーなクラスについて記述しておきます。
主に自分用のメモです。
UIReferenceLibraryViewController とは
iOS標準の辞書にアクセスするためのViewControllerで、iOS5から使用できます。
Qiitaで検索するとたった2つの記事しかヒットしません。この記事がおそらく3つ目です。
Appleもほとんど手をつけてないのか、関数が増えたことも無いようです。
このコントローラの関数はたった一つで、dictionaryHasDefinition になります。
この関数は、OSにインストールされている辞書にその文字が登録されているかをBoolで返してくれます。
使い方:
init するときにtermにStringで値を渡すことで辞書が生成されます。
//open class func dictionaryHasDefinition(forTerm term: String) -> Bool
let text = "test"
//もし辞書に登録されているなら、libVCを生成して遷移する
if (UIReferenceLibraryViewController.dictionaryHasDefinition(forTerm: text)) {
let libVC = UIReferenceLibraryViewController.init(term: text)
self.present(libVC, animated: true, completion: nil)
}
こちらの記事に記載されているとおり、生成したViewControllerのviewをaddSubViewすることでアプリのUIの一部として使用できます。
また、文字が該当する辞書の数によって表示が変わるようで、1つの場合は、上記のように縦長に表示されますが、2つ以上の場合は、リストが表示されます。
本当はAmazonのkindleのように、文字を選択したら辞書をパパッと出したかったのですが、どうやらAmazonは自前で実装されていらっしゃるようです。
なんか、良いAPIやサービスがあったら教えてください。