【发布时间】:2019-04-18 12:13:30
【问题描述】:
我已经使用TextKit 实现了自定义文本视图。我还使用UILongPressGesture 实现了自定义文本选择。我在使用标准弹出菜单UIMenuController 复制选定文本方面取得了进展。
我想实现自定义文本定义。覆盖标准定义操作(甚至不知道它是否存在)或自定义UIMenuItem。
到目前为止,我有以下内容:
@objc func longTap(sender: UILongPressGestureRecognizer) {
...
becomeFirstResponder()
let copyItem = UIMenuItem(title: "Copy", action: #selector(copySelector))
let defineItem = UIMenuItem(title: "Define", action: #selector(defineSelector))
UIMenuController.shared.menuItems = [copyItem, defineItem]
UIMenuController.shared.setTargetRect(...)
UIMenuController.shared.setMenuVisible(true, animated: true)
}
override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
if action == #selector(CenterViewController.copySelector) {
return true
} else if action == #selector(CenterViewController.defineSelector) {
return true
}
return false
}
....
@objc func defineSelector() {
// Use device's dictionary?
// ??
customTextView.clearSelection()
}
还有一个问题:如何实现defineSelector?
我到处搜索,但没有答案。 有什么方法可以使用字典并呈现带有定义的模态视图?正如系统使用任何选定的文本完成的那样。
【问题讨论】:
标签: swift lookup uimenucontroller textkit