我试图实现一个简单的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")
}
}
我需要做什么才能检测到按钮的点击?
你不应该在tvOS上使用".TouchDown "或".TouchUpInside",因为这并不像你所期望的那样:你可能想使用 "UIControlEvents.PrimaryActionTriggered "来代替。
TouchUpInside是由实际的触摸触发的,这并不是真正发生的事情。如果你想让遥控器上的选择按钮触发你的按钮,你应该使用PrimaryActionTriggered。
UIControl.Event.primaryActionTriggered
是tvOS所需要的 addTarget
方法。
button.addTarget(self, action: #selector(ViewController.didTapAcctionButton(_:)), for: .primaryActionTriggered)