14
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

UIReferenceLibraryViewController について

Posted at

今回は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の一部として使用できます。

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

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

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

14
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?