Я реализовал пользовательский просмотр текста, используя 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
?
Я искал везде, но ответов нет.
Есть ли способ использовать словари и представить модальное представление с определениями? Как это делается системой с любым выделенным текстом.