0

swiftUI & tvOS 15中,当调用 GCController.controllers() 来获取连接到苹果电视的控制器列表时,

import GameController

 ...

let siriRemoteAsGameController = GCController.controllers().first

Siri Remote 没有注册为第一个控制器,实际上它根本没有注册!

直到 tvOS 15(例如 14.7)它都在工作

即使我注册通知,连接事件也不会为已连接的 Siri 遥控器分派

NotificationCenter.default.addObserver(forName: .GCControllerDidConnect, object: nil, queue: .main) { note in
        print("GCControllerDidConnect")
        if let detectedGCController = note.object as? GCController {
            print("Controller Detected")
        }
    }

GCController.startWirelessControllerDiscovery(completionHandler: {})

根据Appel 的 $#itty 文档,我找不到该区域的变化

任何帮助,将不胜感激

4

1 回答 1

0

基于这个答案,似乎需要在调用(至少一次)之后GCController.controllers()与遥控器进行交互,所以解决方案是这样的:

import GameController

struct ContentView2: View {
  var body: some View {
    // first call before remote interaction
    let a = print("controllers: \(GCController.controllers())")
    
    Button("Query controllers") {
      // second call after a press button via remote interaction occurred
      print("controllers: \(GCController.controllers())")
    }
  }
}
于 2021-09-28T20:40:41.153 回答