Как убрать фокус из UIButton после истечения таймера (tvOS) - PullRequest
1 голос
/ 25 сентября 2019

Я настраиваю простое приложение tvOS с док-станцией меню (вид стека, содержащий кнопки) внизу.После 5 секунд бездействия я хочу, чтобы док скрылся (переместился вниз, исчез из поля зрения) и убрал фокус с текущей в данный момент кнопки.Док должен появиться снова и снова сфокусироваться на удаленном управлении.С помощью следующего кода док скрывается, но только один раз, после запуска приложения.Любая помощь будет высоко ценится!

@IBOutlet weak var menuDock: UIStackView!

var timer = Timer()

func resetTimer() {
    timer = Timer.scheduledTimer(timeInterval: 5.0, target: self, selector: #selector(ViewController.hideDock), userInfo: nil, repeats: true)
    let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(ViewController.showDock))
    self.view.addGestureRecognizer(tapRecognizer)
}

@objc func hideDock() {
    UIView.animate(withDuration: 0.5, animations: {
        self.menuDock.frame.origin.y += 240
    }, completion: nil)
    timer.invalidate()
}

@objc func showDock() {
    UIView.animate(withDuration: 0.5, animations: {
        self.menuDock.frame.origin.y -= 240
    }, completion: nil)
    timer = Timer.scheduledTimer(timeInterval: 5, target: self, selector: #selector(ViewController.hideDock), userInfo: nil, repeats: true)
    timer.invalidate()
}
...