1

我正在为 tvOS 开发一个小型 SpriteKit 游戏。当用户单击遥控器上的播放/暂停按钮时,我需要接收输入。查看文档,看来我应该只需要在我的场景视图中添加一个 UITapGestureRecognizer 。我实现了以下代码:

override func didMove(to view: SKView) {
    let tapPlayPause = UITapGestureRecognizer(target: self, action: #selector(tapTesting))
    tapPlayPause.allowedPressTypes = [NSNumber(value: UIPress.PressType.playPause.rawValue)]
    view.addGestureRecognizer(tapPlayPause)

    let swipeUp = UISwipeGestureRecognizer(target: self, action: #selector(swipeUp))
    swipeUp.direction = .up
    view.addGestureRecognizer(swipeUp)
}

@objc func tapTesting(_ sender: UITapGestureRecognizer) {
    print("TAP")
}

但是,当我在 Apple TV 4K(运行 tvOS 15)上运行该应用程序时,没有输出,据我所知,没有触发任何点击代码。

我也尝试过代码,self.isUserInteractionEnabled = true但我仍然没有收到点击输入。

我在上面实现的滑动手势非常完美,点击手势也适用于我的 iOS 设备。有谁知道为什么会这样?

谢谢!

4

1 回答 1

0

对于 tvOS 手势,您还需要设置allowedTouchTypes.indirect

tapPlayPause.allowedTouchTypes = [NSNumber(touchType: .indirect)]
于 2021-10-03T22:31:10.380 回答