0

У меня возникла странная проблема с моим приложением. Фактически, когда я представляю контроллер просмотра для воспроизведения видео. На время загрузки видео пользователь нажимает кнопку меню, приложение переходит в фоновый режим. Пока я перезаписал действие кнопки меню.Как работать с меню Действие кнопки в удаленном tvOS

Это мой код.

override func viewWillAppear(animated: Bool) { 
    let menuPressRecognizer = UITapGestureRecognizer() 
    menuPressRecognizer.addTarget(self, action: #selector(VideoPlayerViewController.menuButtonAction(_:))) 
    menuPressRecognizer.allowedPressTypes = [NSNumber(integer: UIPressType.Menu.hashValue)] 
    self.playerController.view.addGestureRecognizer(menuPressRecognizer) 
} 

func menuButtonAction(ges:UITapGestureRecognizer) { 
    self.dismissView() 
} 

ответ

0

Вы должны использовать перечисление rawValue-х вместо hash при указании allowedPressTypes:

menuPressRecognizer = [NSNumber(value: UIPressType.menu.rawValue)]

5

Это мой код и работает для меня.

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(animated) 
    let menuPressRecognizer = UITapGestureRecognizer() 
    menuPressRecognizer.addTarget(self, action: #selector(YourViewController.menuButtonAction(recognizer:))) 
    menuPressRecognizer.allowedPressTypes = [NSNumber(value: UIPressType.menu.hashValue)] 
    self.view.addGestureRecognizer(menuPressRecognizer) 
} 

func menuButtonAction(recognizer:UITapGestureRecognizer) 
{ 
    self.dismiss(animated: true, completion: nil) 
} 
0

Свифта 4 раствор (на основе anasaman_p answer):

class MyViewController : UIViewController { 

    override func viewDidLoad() { 

     super.viewDidLoad() 
     let menuPressRecognizer = UITapGestureRecognizer() 
     menuPressRecognizer.addTarget(self, action: #selector(MyViewController.menuButtonAction(recognizer:))) 
     menuPressRecognizer.allowedPressTypes = [NSNumber(value: UIPressType.menu.rawValue)] 
     self.view.addGestureRecognizer(menuPressRecognizer) 
    }   

    @objc func menuButtonAction(recognizer:UITapGestureRecognizer) { 

     // Add any code here you want to run after the menu button pressed 
    } 
} 
Смежные вопросы