是否可以覆盖 pressesBegan() 以最小化 tvOS 中的全屏 AVPlayer?

Is it okay to override pressesBegan() to minimize a fullscreen AVPlayer in tvOS?

我的 tvOS 应用程序的一部分 UI 是一个最小化的(400 像素宽度)AVPlayer 和一个按钮,通过将其框架设置为window 边界:

playerController.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height).

我无法将 'close fullscreen' 按钮添加到全屏 avplayer(这将是最好的解决方案),这就是为什么我要覆盖 pressesBegan()-方法的原因:

override func pressesBegan(presses: Set<UIPress>, withEvent event: UIPressesEvent?)
    {
        guard presses.first?.type == UIPressType.Menu else
        {
            super.pressesBegan(presses, withEvent: event)
            return
        }

        // If not minimized, minimize it
        if playerController.view.frame.size.width != 400
        {
            playerController.view.frame = minimizedVideoBounds
        }
    }

问题

这是实现我的用户体验目标的可能、安全和干净的原因,还是应该不惜一切代价避免的肮脏黑客?

简而言之:不,不是。我有奇怪的副作用。我认为我们应该使用 AVPlayerAVPlayerController 作为全屏元素,我们应该避免子类化这些东西。

如果有人足够聪明来处理这个问题:请告诉我怎么做。