如何不让 Home 按钮退出 SwiftUI 中的 tvOS 应用

Tar*_*les 1 gamecontroller tvos swiftui

在UIKit中,我们可以使用GCEventViewController通过设置controllerUserInteractionEnabled = false来拦截游戏控制器将Home按钮按下传播给响应者(并让他们退出我们的应用程序)

SwiftUI 应用程序不使用 ViewController,因此,除了复活一个将整个应用程序嵌入其中之外,我们无法使用上述解决方案来避免玩家因按错按钮而意外遗漏游戏/应用程序(我们不能使用按钮B)

有谁知道这个难题的解决方案?Apple 是否已经实施了一种新方法来拦截高级事件,以便我们可以在内部处理它们?

谢谢!

Jef*_*son 5

您必须有一个可聚焦的视图(如按钮),然后您可以在包含视图中使用onExitCommand来简单地忽略退出事件,或执行不同的操作。

struct ContentView: View {
    var body: some View {
        VStack {
            Button("Hello, world!") {
                
            }
        }.onExitCommand {
           // Do nothing
        }
    }
}
Run Code Online (Sandbox Code Playgroud)