首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >tvOS - pressesEnded一开始就不起作用

tvOS - pressesEnded一开始就不起作用
EN

Stack Overflow用户
提问于 2016-02-17 17:09:40
回答 1查看 598关注 0票数 0

我试图给应用程序和YouTuBe一样的行为,当顶部的TabBar是可见的,用户按下遥控器上的菜单按钮时,应用程序应该退出。

所以我重写了pressesBeganpressesEnded

代码语言:javascript
复制
override func pressesBegan(presses: Set<UIPress>, withEvent event: UIPressesEvent?) {

}

什么都没有,否则无论 pressesEnded中的条件如何,应用程序都会退出

代码语言:javascript
复制
override func pressesEnded(presses: Set<UIPress>, withEvent event: UIPressesEvent?) {
    if let type = presses.first?.type where type == .Menu {
        if navigationController.viewControllers.count == 1 {
            if isTabBarOpen {
                super.pressesEnded(presses, withEvent: event)
            } else {
                self.showTabBar()
                self.setNeedsFocusUpdate()
                self.updateFocusIfNeeded()
            }
        }
    } else {
        super.pressesEnded(presses, withEvent: event)
    }
}

所以我的问题是在应用程序启动(从终止状态,而不是背景状态),如果我按下遥控器上的菜单按钮,if isTabBarOpen{ super.pressesEnded(presses, withEvent: event) }会被执行,但应用程序永远不会退出,除非我移动焦点。

编辑

我试着把最初的注意力集中在TabBarRootViewController

如果你需要更多信息,请告诉我:)谢谢

EN

回答 1

Stack Overflow用户

发布于 2016-02-24 05:01:03

您是否尝试过使用手势识别器来捕捉菜单按钮按下?

代码语言:javascript
复制
    // add the hook to detect menu button press
    let tap = UITapGestureRecognizer(target: self, action: "menuPressed:")
    tap.allowedPressTypes = [NSNumber(integer: UIPressType.Menu.rawValue)]
    window.rootViewController?.view.addGestureRecognizer(tap) // add it to your view controller

    func menuPressed(gesture: UITapGestureRecognizer){
       print("menu press")   
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35463221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档