Swift - 打开内置 iOS 词典来查找单词意思

本年度 App Store 十佳 App Pin 里面有一个功能是调用内置词典来查询剪贴板中的单词,在我的项目里我也想打开 iOS 内置词典来查询单词含义。

下面是解决方案:

  • Objective-C
    if ([UIReferenceLibraryViewController dictionaryHasDefinitionForTerm:@"word"]) {
    UIReferenceLibraryViewController* ref =
    [[UIReferenceLibraryViewController alloc] initWithTerm:@"word"];
    [currentViewController presentViewController:ref animated:YES completion:nil];
    }
  • Swift
    let word = "home"
    if UIReferenceLibraryViewController.dictionaryHasDefinitionForTerm(word) {
    let ref: UIReferenceLibraryViewController = UIReferenceLibraryViewController(term: word)
    self.presentViewController(ref, animated: true, completion: nil)
    }

这种行为和用户点击UITextView中高亮词汇弹出的"定义"的UIMenuItem的效果差不多。

UIReferenceLibraryViewController也提供了一个类方法dictionaryHasDefinitionForTerm:,开发者可以在dictionary view controller出现之前调用这个方法,就可以在不必需的时候不显示那个view controller了。

[UIReferenceLibraryViewController dictionaryHasDefinitionForTerm:@"apple"];

你可能感兴趣的:(Swift - 打开内置 iOS 词典来查找单词意思)