我正在尝试实现一个简单的UIButton(tvOS& Swift),但TouchDown事件没有触发。 (也试过TouchUpInside)。
我的ViewController.swift代码是:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let button = UIButton(type: UIButtonType.System)
button.frame = CGRectMake(100, 100, 400, 150)
button.backgroundColor = UIColor.greenColor()
button.setTitle("Test", forState: UIControlState.Normal)
button.addTarget(self, action: "buttonAction:", forControlEvents: UIControlEvents.TouchDown)
self.view.addSubview(button)
self.view.userInteractionEnabled = true
}
func buttonAction(sender:UIButton!){
NSLog("Clicked")
}
}
要检测按钮点击,我需要做什么?
答案 0 :(得分:24)
你不应该使用" .TouchDown"或者" .TouchUpInside"在tvOS上,因为那并不是你所期望的:你可能想要使用" UIControlEvents.PrimaryActionTriggered"代替。
TouchUpInside由实际触摸触发,实际上并非如此。如果您想按遥控器上的“选择”按钮来触发按钮,则应使用PrimaryActionTriggered。
答案 1 :(得分:0)
UIControl.Event.primaryActionTriggered
对于tvOS addTarget
方法是必需的:
button.addTarget(self, action: #selector(ViewController.didTapAcctionButton(_:)), for: .primaryActionTriggered)