我试图实现一个简单的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上使用".TTouchDown"或".TToucheUpInside",因为这并不能达到你的预期:你可能想使用"UIControlEvents.PrimaryActionTriggered"。
TouchUpInside是由实际触摸触发的,这并不是真正发生的事情。如果您希望按下遥控器上的Select按钮来触发您的按钮,您应该使用PrimaryActionTriggered。
UIControl.Event.primaryActionTriggered
是tvOS addTarget
方法所必需的:
button.addTarget(self, action: #selector(ViewController.didTapAcctionButton(_:)), for: .primaryActionTriggered)