我正在构建一个主要使用 SwiftUI 的应用程序,但我必须使用 UIKit ViewController 来与 PencilKit 交互。我正在使用UIViewControllerRepresentable
它们之间的接口。
所以我有一个 ViewController 用来设置我的应用程序的 PencilKit 部分,在其中我必须设置一个依赖于 UIResponder 的 PKToolPicker。为此,我必须编写以下代码:
canvasView = PKCanvasView(frame: view.bounds)
toolPicker.setVisible(true, forFirstResponder: canvasView)
canvasView.becomeFirstResponder()
我这里使用的这个canvasView视图是控制绘图区域的视图,通常你必须将它设置为前面提到的ViewController的子视图。问题是,在我的例子中,这个 ViewController 嵌套在一个UIViewControllerRepresentable
嵌套在 SwiftUI 视图中的 a 中。因此,我需要将此 SwiftUI 视图添加为第二个 FirstResponder,否则每次我在 SwiftUI 视图上运行手势时,PKTool 都会消失,因为 canvasView 不再是第一响应者。
所以我的问题是我该怎么做?如何将 SwiftUI 视图设置为第一响应者?找不到如何获取 SwiftUI 的 UIResponder 对象,所以我可以将它添加为 FirstResponder,有人知道怎么做吗?