Мне не удается получить UIViewController для получения метода UIPencilInteractionDelegate «cilInteractionDidTap »в ответ на двойные нажатия на Apple Pencil. Я тестирую на моделях iPad Pro 11 и 12.9, работающих под управлением iOS 13.3.1
. Я реализовал следующее:
extension UIViewController: UIPencilInteractionDelegate {
public func pencilInteractionDidTap(_ interaction: UIPencilInteraction) {
print("Handle pencil double-tap")
}
}
В моем UIViewController:
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
let pencilInteraction = UIPencilInteraction()
pencilInteraction.delegate = self
view.addInteraction(pencilInteraction)
}
Примечание. Если я создаю новое приложение Single View iOS и добавляю этот код, все работает как положено.
Однако приведенный выше код не работает с пользовательским UIViewController в моем приложении. Мой вид UIViewController содержит UIScrollView, а также наложенные виды контейнеров и обрабатывает сенсорные события в классах View Controller и ScrollView.
Я также попытался добавить объект UIPencilInteraction к другим UIViewControllers в моем приложении и «cilInteractionDidTap » метод не вызывается ни в одном из них.
Нужно ли что-то изменить в цепочке респондента, чтобы UIViewController обрабатывал вызовы методаcilInteractionDidTap?