替代按下tvOS上的Began和菜单按钮



我有一个带有许多子视图的视图控制器。当按下Menu按钮时,我的应用程序应该执行一些操作。但如果没有任何"活动"操作,我的应用程序应该关闭。

override func pressesBegan(presses: Set<UIPress>, withEvent event: UIPressesEvent?) {
    guard let type = presses.first?.type else { return }
    //...
    if falls == true && type == .Menu {
        super.pressesBegan(presses, withEvent: event)
    }
}

第一次,此代码正常工作。但如果我重新打开应用程序并按下Menu按钮,应用程序就会关闭,但super函数并没有被调用。

我该如何摆脱它?

我做了一个肮脏的黑客:

  1. 删除了super调用:

    super.pressesBegan(presses, withEvent: event)
    
  2. 当我需要关闭应用时,请在UIApplication上调用suspend

    if type == .Menu && falls == true {
        UIApplication.sharedApplication().performSelector(Selector("suspend"))
    }
    

相关内容

  • 没有找到相关文章

最新更新