Je pense qu'il me manque quelque chose de très basique, mais je n'arrive pas à appuyer sur un bouton pour passer outre.tvos Overriding pressesBegan
J'essaie de détecter la pression sur le bouton de menu, donc je remplace pressesBegan:
et tester le UIPressTypeMenu
. La méthode attrape le bouton de menu, appuie sur, et exécute mon code, mais suit immédiatement avec une sortie d'application de toute façon.
Voici ma méthode substituée. Est-ce que quelqu'un sait ce que je fais mal? Y a-t-il autre chose dont j'ai besoin pour annuler la sortie automatique du menu? C'est presque comme s'il y avait deux répondeurs. Même chose avec le robinet gauche et le robinet droit. Ils sont reconnus, mon code se déclenche, mais l'objectif change de toute façon car je n'ai pas complètement géré l'événement.
J'ai essayé le code dans le premier contrôleur d'affichage de l'application et le menu est remplacé correctement. Ensuite, j'ai mis en place une vue vide et présente cette vue en tant que vue numéro 2 et je ne peux pas obtenir les méthodes à remplacer.
- (void)pressesBegan:(NSSet<UIPress *> *)presses withEvent:(UIPressesEvent *)event {
for(UIPress *press in presses) {
if(press.type == UIPressTypeMenu) {
[(UIImageView *) [self.view viewWithTag:100] setUserInteractionEnabled:NO];
}
if(press.type == UIPressTypePlayPause) {
// play and pause code
}
}
}
-(void) pressesEnded:(NSSet<UIPress *> *)presses withEvent:(UIPressesEvent *)event {
//
for(UIPress *press in presses) {
if(press.type == UIPressTypeMenu) {
// do ButtonA job
NSLog(@"test");
}
if(press.type == UIPressTypePlayPause) {
// do ButtonX job
} else {
}
}
}
-(void) pressesChanged:(NSSet<UIPress *> *)presses withEvent:(UIPressesEvent *)event {
// Works fine!
for(UIPress *press in presses) {
if(press.type == UIPressTypeMenu) {
// do ButtonA job
}
if(press.type == UIPressTypePlayPause) {
// do ButtonX job
}
}
}
-(void) pressesCancelled:(NSSet<UIPress *> *)presses withEvent:(UIPressesEvent *)event {
// Works fine!
for(UIPress *press in presses) {
if(press.type == UIPressTypeMenu) {
// do ButtonA job
NSLog(@"cancelled");
}
if(press.type == UIPressTypePlayPause) {
// do ButtonX job
}
}
}
avez-vous résoudre ce problème? J'essaie aussi de capturer le bouton de menu. –