5

我已按照本教程进行操作,一切正常。我遇到的唯一问题是我不知道如何检测何时按下按钮?

提前致谢

4

6 回答 6

6

本教程的作者在这里,向基于 TVML 的应用程序添加交互性的方法是在有问题的 DOM 元素上使用 addEventListener。您可以通过在创建过程中保持对 DOM 元素的引用,或者使用 getElementById 或其他类似的 JavaScript DOM 技术来查找 DOM 元素。另外,我应该提到我已经在提到的教程中添加了一个“第 2 部分”,其中包括这个作为它的主要焦点。

这是一个在 JS 中如何执行此操作的示例,假设 myDOMElement 是一个将您的按钮作为 DOM 元素引用的变量。

  myDOMElement.addEventListener("select", function() { alert("CLICK!") }, false);

当然,我有更多关于教程的信息,所以也可以随时查看

于 2015-09-11T02:02:09.973 回答
2

按钮按下类似于 UITouch 事件。查看 UIResponder 标头中的 UIPresEvent 回调。UIViewControllers 是响应者链的一部分,因此您可以在视图控制器中添加回调,如下所示:

- (void)pressesEnded:(NSSet<UIPress *> *)presses withEvent:(nullable UIPressesEvent *)event {

    UIPress *anyPress = [presses anyObject];
    // handle press event

}
于 2015-09-10T13:25:16.530 回答
2
let playPauseRecognizer = UITapGestureRecognizer(target: self, action: "playPauseRecognizer:")
playPauseRecognizer.allowedPressTypes = [NSNumber(integer:UIPressType.PlayPause.rawValue)]

     view.addGestureRecognizer(playPauseRecognizer)
于 2016-01-07T20:51:15.283 回答
1

您不应该在 tvOS 上使用“UIControlEvents.TouchUpInside”,因为这不会达到您的预期:您可能想改用“UIControlEvents.PrimaryActionTriggered”。

TouchUpInside 由实际触摸触发,这并不是您真正想要的:如果您希望按下遥控器上的 Select 按钮来触发您的按钮,您应该使用 PrimaryActionTriggered。

于 2015-11-02T05:52:34.290 回答
0

根据Apple Docs ,您可以向与 iOS 相同的 UIButton 添加操作

UIButton 类的一个实例在触摸屏上实现一个按钮。按钮拦截触摸事件并在点击时向目标对象发送操作消息。设置目标和动作的方法继承自 UIControl。此类提供设置按钮的标题、图像和其他外观属性的方法。通过使用这些访问器,您可以为每个按钮状态指定不同的外观。

于 2015-09-10T16:57:56.370 回答
0

Swift 3 版本的@jess-bowers 代码:

override func pressesEnded(_ presses: Set<UIPress>, with event: UIPressesEvent?) {
    let anyPress: UIPress? = presses.first
}
于 2017-04-27T21:32:46.457 回答