2016-11-29 9 views
0

У меня есть UITableView и UIButton на экране tvOS. Согласно Apple's docoshouldUpdateFocusInContext: следует вызывать в любое время, когда фокус меняется.tvOS: shouldUpdateFocusInContext: не называется

Однако если выполнить этот код с помощью кнопки:

[_tableViewController setEditing:YES animated:YES]; 

tvOS генерирует изменение фокуса с помощью кнопки на табличном, однако метод shouldUpdateFocusInContext: не называется на любом контроллере или представлении, что я могу найти ,

Моя проблема в том, что есть моменты, когда я хочу включить редактирование в виде таблицы, но не устанавливаю для нее фокус. Поэтому я хочу, чтобы метод shouldUpdateFocusInContext: вызывал, чтобы я мог отклонить изменение фокуса.

Любые идеи, как исправить это?

ответ

0

Если я правильно помню, у меня была такая же проблема с shouldUpdateFocusInContext и я перешел на this метод:

override func tableView(_ tableView: UITableView, didUpdateFocusIn context: UITableViewFocusUpdateContext, with coordinator: UIFocusAnimationCoordinator) { 
     //Where DetailTableCell is my custom UITableCell 
     if let cell = context.nextFocusedView as? DetailTableCell { 
      print("called next focused.") 
     } 

     if let previous = context.previouslyFocusedView as? DetailTableCell { 
      print("Called previous focused.") 
     } 
    } 

Сообщает делегат, обновление фокус задается контекст только что произошло.