本年度 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"];
网友评论