识别Apple TV遥控器上的选择

时间:2016-12-12 02:57:21

标签: swift swift3 tvos

我的Apple TV应用程序正在从URL中提取音频并播放它。但是再次按下按钮需要暂停。

因此我在UIButton中添加了一个addTarget来查看它是否正在播放音频。

这是在我的ViewDidLoad

player = AVPlayer(url:url)
let playerLayer = AVPlayerLayer(player: player)
let rect = CGRect(origin: CGPoint(x: 0,y :0), size: CGSize(width: 10, height: 50))
playerLayer.frame = rect
self.view.layer.addSublayer(playerLayer)
playButton.addTarget(self, action: "plays:", for: UIControlEvents.primaryActionTriggered )

函数plays

func plays(sender: UIButton!){
    NSLog("Clicked")
    if player?.rate ==  0{
        player!.play()
        print("<PLAYING")
    }else{
        player!.pause()
    }
}

然而,这给了我以下错误:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ViewController plays:]: unrecognized selector sent to instance 0x7fe917802b80'

我怎样才能识别出点击次数&#39;或者&#39;按&#39;在遥控器上,让功能plays完成它的工作?

1 个答案:

答案 0 :(得分:1)

在Swift 3中,您需要在方法的第一个参数之前使用下划线。

func plays(_ sender: UIButton!) { 

正确的选择器语法:

#selector(plays(_:))