覆盖tvOS上的pressBegan和菜单按钮

时间:2016-04-12 11:46:11

标签: swift uikit tvos

我有一个包含许多子视图的视图控制器。当按下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 个答案:

答案 0 :(得分:1)

我做了一个肮脏的黑客:

  1. 删除了super来电:

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

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