Ok, answering my question :)
Thus, it seems that some of the types are βtunedβ to tvOS out of the box, and others should be instructed about this.
Finally, I ended up using a UITextView that has a selectable property, but if not one of these focus views by default. TextView editing must be disabled to make it look like UILabel . In addition, there is currently an error that prevents the use of the selectable property in Interface Builder, but works with code.
Naturally, canBecomeFocused() and didUpdateFocusInContext were also implemented. You also need to pass a UIViewController because a UITextView cannot present a modal view controller. Bellow is what I created.
class FocusableText: UITextView { var data: String? var parentView: UIViewController? override func awakeFromNib() { super.awakeFromNib() let tap = UITapGestureRecognizer(target: self, action: "tapped:") tap.allowedPressTypes = [NSNumber(integer: UIPressType.Select.rawValue)] self.addGestureRecognizer(tap) } func tapped(gesture: UITapGestureRecognizer) { let storyboard = UIStoryboard(name: "Main", bundle: nil) if let descriptionView = storyboard.instantiateViewControllerWithIdentifier("descriptionView") as? DescriptionViewController { if let view = parentView { if let show = show { descriptionView.descriptionText = self.data view.modalPresentationStyle = UIModalPresentationStyle.OverFullScreen view.presentViewController(descriptionView, animated: true, completion: nil) } } } } override func canBecomeFocused() -> Bool { return true } override func didUpdateFocusInContext(context: UIFocusUpdateContext, withAnimationCoordinator coordinator: UIFocusAnimationCoordinator) { if context.nextFocusedView == self { coordinator.addCoordinatedAnimations({ () -> Void in self.layer.backgroundColor = UIColor.blackColor().colorWithAlphaComponent(0.2).CGColor }, completion: nil) } else if context.previouslyFocusedView == self { coordinator.addCoordinatedAnimations({ () -> Void in self.layer.backgroundColor = UIColor.clearColor().CGColor }, completion: nil) } } }
source share