Apple TVアプリでボタンやフォーカスの動きを調べる

フォーカス移動の検知

override func didUpdateFocusInContext(context: UIFocusUpdateContext, withAnimationCoordinator coordinator: UIFocusAnimationCoordinator) {
    context.nextFocusedView?.backgroundColor = UIColor.grayColor() // 現在フォーカスがあたっているビューの操作
    context.previouslyFocusedView?.backgroundColor = nil // ひとつ前にフォーカスがあたっていたビューの操作
}

最初にフォーカスされるビューの指定

override var preferredFocusedView: UIView? {
    return ボタン名
}

ボタンが押された時の処理

ボタン名.addTarget(self, action: #selector(呼び出すメソッド), forControlEvents: UIControlEvents.PrimaryActionTriggered)

わからないこと

  • スワイプでフォーカスが移動しない場合の対応
  • 左右タップの取得方法 (取得できる?)

参考