swift - 当 UIButton 获得焦点时,Siri Remote 的菜单按钮不会退出应用程序

标签 swift tvos apple-tv siri-remote

我正在重写 pressesBegan 以接收 Select 按下操作。当焦点位于 UIButton 上时,Siri Remote 的菜单按钮不会退出我的应用程序。如果没有 UI 元素获得焦点,菜单按钮将按预期工作。

当焦点位于 UIButton 上时,如何接收菜单按钮按下操作?

override func pressesBegan(presses: Set<UIPress>, withEvent event: UIPressesEvent?) {
    for item in presses {
        if item.type == .Select {
            print("Click")
        }
        if item.type == .Menu {
            print("Menu Button")
            super.pressesBegan(presses, withEvent: event)
        }
    }
}

最佳答案

UIButton 仅响应 Remote 上的 .Select 按钮。您可以使用点击手势识别器捕获菜单按钮。例如:

let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(ClassName.menuPressed()))
tapRecognizer.allowedPressTypes = [NSNumber(integer: UIPressType.Menu.rawValue)];
view.addGestureRecognizer(tapRecognizer)

然后实现:

func menuPressed() {
    // do something
}

关于swift - 当 UIButton 获得焦点时,Siri Remote 的菜单按钮不会退出应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37685620/

相关文章:

ios - 为什么包装 os_log() 会导致无法正确记录 double ?

swift - tvOS:UIButton 的 UIMotionEffect 滑动时不会反弹

swift - 如何在 tvOS 应用程序中默认关注文本字段,而不是第一响应者?

web - Apple TV 用户代理字符串。任何人都可以提供吗?

快速处理从 sleep 中唤醒并恢复播放?

javascript - 强制 View 在 Apple TV/tvos 上重新加载 tvml 内容

ios - 在 iOS 上使用 Firebase SDK 作为新设备开始

ios - NSFetchedResultsController 和数组。插入

ios - 更新标签花费的时间太长(快速)

swift - 使用 UIFocusGuide 在 tvOS 中进行对角线聚焦