UITextView no se desplaza en tvOS

Tengo un UITextView en mi aplicación de TV, cuando trato de hacer que se pueda enfocar, la interfaz de usuario no lo hace enfocable y no puedo desplazarlo. Leí algunas preguntas al respecto y algunos dicen que es un problema conocido y que deberíamos utilizar storyboards. De hecho, estoy usando storyboards pero aún no puedo hacer que esto funcione. También he intentado que sea selectable , scrollEnabled y userInteractionEnabled y finalmente también probé esta línea de código, pero ninguno funciona.

 descriptionLbl.panGestureRecognizer.allowedTouchTypes = [NSNumber(integer: UITouchType.Direct.rawValue)] 

También intenté imprimir los bounds abd contentSize de UITextView y aquí está el logging

 Content Size (740.0, 914.0) Bounds (25.0, 0.0, 740.0, 561.0) 

Aquí está mi código puede algún cuerpo ayudarme

 @IBOutlet weak var descriptionLbl: UITextView! var currentModel : Model? override func viewDidLoad() { super.viewDidLoad() descriptionLbl.selectable = true descriptionLbl.scrollEnabled = true descriptionLbl.userInteractionEnabled = true descriptionLbl.panGestureRecognizer.allowedTouchTypes = [NSNumber(integer: UITouchType.Direct.rawValue)] descriptionLbl.text = (currentModel?.description)! + (currentModel?.description)! + (currentModel?.description)! descriptionLbl?.contentInset = UIEdgeInsets(top: 0.0, left: -25.0, bottom: 0.0, right: 0.0); } 

Supongo que no debería hacer tantos trucos pero no funciona de ninguna manera. En realidad, el enfoque está llegando a UITextView pero no se desplaza. ¿Algunas ideas?

Creo que quieres indirectas, no directas. Aquí es cómo configuro mi UITextView enfocable y desplazable:

 self.selectable = YES; self.userInteractionEnabled = YES; self.panGestureRecognizer.allowedTouchTypes = @[@(UITouchTypeIndirect)]; 

Esto es lo que funcionó para mí, en Swift 2.1:

 myTextView.userInteractionEnabled = true myTextView.selectable = true myTextView.scrollEnabled = true myTextView.panGestureRecognizer.allowedTouchTypes = [UITouchType.Indirect.rawValue] 

Espero eso ayude.

Esto es lo que funcionó para mí en Swift 3.0.1, basado en las respuestas anteriores:

  • Tuve que subclass UITextView para anular canBecomeFocused para devolver true
  • Tuve que configurar panGestureRecognizer.allowedTouchTypes = [NSNumber(value: UITouchType.indirect.rawValue)]
  • Tuve que establecer isUserInteractionEnabled = true en el código – configurarlo en Interface Builder no parecía suficiente
  • Tuve que marcar "Scrolling Enabled" en el generador de interfaces (la configuration isScrollEnabled = true en el código también funcionaría

Algunas otras sutilezas que encontré:

  • bounces = true made scrolling se siente más natural (tuvo que establecerse en código; no se respetó la configuration IB)
  • showsVerticalScrollIndicator = true tuvo que establecerse en el código; Ajuste de IB no respetado
  • didUpdateFocus(in:with:) para cambiar el color de background para indicar visualmente el enfoque.