在 tvOS 上覆盖 pressBegan 和菜单按钮
Overriding pressBegan and menu button on tvOS
我有一个包含许多子视图的视图控制器。当按下 Menu
按钮时,我的应用程序应该执行一些操作。但是,如果没有任何 "active" 操作,我的应用程序应该会关闭。
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
函数。
我应该如何摆脱它?
我做了一个肮脏的黑客:
已删除 super
调用:
super.pressesBegan(presses, withEvent: event)
当我需要关闭应用程序时,在 UIApplication
上调用 suspend
if type == .Menu && falls == true {
UIApplication.sharedApplication().performSelector(Selector("suspend"))
}
我有一个包含许多子视图的视图控制器。当按下 Menu
按钮时,我的应用程序应该执行一些操作。但是,如果没有任何 "active" 操作,我的应用程序应该会关闭。
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
函数。
我应该如何摆脱它?
我做了一个肮脏的黑客:
已删除
super
调用:super.pressesBegan(presses, withEvent: event)
当我需要关闭应用程序时,在
UIApplication
上调用suspend
if type == .Menu && falls == true { UIApplication.sharedApplication().performSelector(Selector("suspend")) }