2017-07-07 3 views
0

Je fais une application simple qui montrera à l'utilisateur quelques informations quand ils survolent un bouton. J'ai cherché partout une réponse pour cela mais il semble que personne ne l'ait encore demandé. Je sais qu'il est possible de détecter les surbrillances des boutons parce que je l'ai vu dans certaines applications que j'ai téléchargées sur mon Apple TV. Voici essentiellement ce que je vise:Comment faire pour détecter la surbrillance de bouton sur Apple TV dans Swift

@IBAction func firstButton(_ sender: Any) { 
//This function would be called when the first button is highlighted/hovered over 

label.text = "Hi there" 

} 

@IBAction func secondButton(_ sender: Any) { 
//This function would be called when the second button is highlighted/hovered over 

label.text = "How are you?" 

} 

Je sais que la simple création d'un IBAction func ne fera pas l'affaire, mais je suis juste en utilisant comme un exemple de ce que je veux faire.

Y a-t-il un moyen de détecter les surbrillances de boutons/le survol des boutons et comment?

Merci d'avance. Toute aide est appréciée.

Répondre

1

Par hover, je pense que vous voulez dire "est le bouton en focus". Il existe plusieurs façons de déterminer si un élément de l'interface utilisateur est actif.

Pour UIViewController, vous pouvez remplacer didUpdateFocus qui fournit un contexte sur ce qui se passe dans le moteur de mise au point.

override func didUpdateFocus(in context: UIFocusUpdateContext, with coordinator: UIFocusAnimationCoordinator) { 
    if context.nextFocusedView == myButton { 
     print("My button is about to be focused") 
    } 
    else { 
     print("My button is NOT in focus") 
    } 
} 

Ou dans une coutume UIView (ie. Une coutume UIButton) vous pouvez vérifier la propriété isFocused.

override func didUpdateFocus(in context: UIFocusUpdateContext, with coordinator: UIFocusAnimationCoordinator) { 
    print(isFocused) 
}