Я создаю приложение, используя в основном SwiftUI, но мне нужно использовать UIKit ViewController для взаимодействия с PencilKit. Я использую UIViewControllerRepresentable
для взаимодействия между ними.
Итак, у меня есть ViewController, который я использую для настройки части моего приложения PencilKit, и внутри него я должен установить PKToolPicker, который зависит от ответ UIR. Для этого мне нужно написать следующий код:
canvasView = PKCanvasView(frame: view.bounds)
toolPicker.setVisible(true, forFirstResponder: canvasView)
canvasView.becomeFirstResponder()
Это представление canvasView, которое я здесь использую, является видом, управляющим областью рисования, и вам обычно нужно установить его как подпредставление вышеупомянутого ViewController. Проблема в том, что в моем случае этот ViewController вложен в UIViewControllerRepresentable
, который вложен в представление SwiftUI. Поэтому мне нужно добавить это представление SwiftUI в качестве второго FirstResponder, иначе PKTool исчезает каждый раз, когда я запускаю жест в представлении SwiftUI, так как canvasView перестает быть первым респондентом.
Поэтому мой вопрос заключается в том, как мне сделать это? Как я могу настроить представление SwiftUI в качестве первого респондента? Не удалось найти способ получения объекта SwiftUI UIResponder, хотя я мог бы добавить его в качестве FirstResponder. Кто-нибудь знает, как это сделать?