Xcode
iOS
Swift
Swift3.0

UIReferenceLibraryViewController について

今回はUIReferenceLibraryViewControllerと言う死ぬほどマイナーなクラスについて記述しておきます。

主に自分用のメモです。

UIReferenceLibraryViewController とは

iOS標準の辞書にアクセスするためのViewControllerで、iOS5から使用できます。
Qiitaで検索するとたった2つの記事しかヒットしません。この記事がおそらく3つ目です。
Appleもほとんど手をつけてないのか、関数が増えたことも無いようです。

このコントローラの関数はたった一つで、dictionaryHasDefinition になります。
この関数は、OSにインストールされている辞書にその文字が登録されているかをBoolで返してくれます。

使い方:
init するときにtermにStringで値を渡すことで辞書が生成されます。

libsample.swift
//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)
}

大体こんな感じに表示されます。
image.png

こちらの記事に記載されているとおり、生成したViewControllerのviewをaddSubViewすることでアプリのUIの一部として使用できます。

http://qiita.com/T_Fuchi/items/36886997618598003d7c

また、文字が該当する辞書の数によって表示が変わるようで、1つの場合は、上記のように縦長に表示されますが、2つ以上の場合は、リストが表示されます。

本当はAmazonのkindleのように、文字を選択したら辞書をパパッと出したかったのですが、どうやらAmazonは自前で実装されていらっしゃるようです。

なんか、良いAPIやサービスがあったら教えてください。