Ich denke, ich vermisse etwas ziemlich einfach, aber ich kann nicht drücken, um richtig zu überschreiben.tvos Overriding pressesBegan
Ich versuche zu erkennen, die Menü-Taste drücken, also überschreibe ich pressesBegan:
und Test für die UIPressTypeMenu
. Die Methode fängt die Menütaste auf und führt meinen Code aus, folgt dann aber sofort mit einem App-Exit trotzdem.
Hier ist meine überschriebene Methode. Weiß jemand, was ich falsch mache? Gibt es noch etwas anderes, um den automatischen Menüausgang zu umgehen? Es ist fast so, als gäbe es zwei Responder. Gleiches gilt für den linken und rechten Tipp. Sie werden erkannt, mein Code feuert, aber dann ändert sich der Fokus sowieso, weil ich das Ereignis nicht vollständig behandelt habe.
Ich habe versucht, den Code in der ersten Ansicht Controller der App und das Menü ordnungsgemäß überschrieben. Dann richte ich eine leere Ansicht ein und präsentiere diese Ansicht als Ansicht Nummer 2, und ich kann die Methoden zum Überschreiben nicht erhalten.
- (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
}
}
}
haben Sie dieses Problem lösen? Ich versuche auch, die Menü-Taste zu erfassen. –