J'ai un très simplement sous-classe de UIButton qui se déclenche au large d'un événement personnalisé lorsque le bouton a été maintenu pendant 2 secondes. Pour ce faire, je l'emporterait sur:continueTrackingWithTouch: withEvent: pas appelé en permanence
//
// Mouse tracking
//
- (BOOL)beginTrackingWithTouch:(UITouch *)touch
withEvent:(UIEvent *)event
{
[super beginTrackingWithTouch:touch withEvent:event];
[self setTimeButtonPressed:[NSDate date]];
return (YES);
}
- (BOOL)continueTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event
{
[super continueTrackingWithTouch:touch withEvent:event];
if ([[self timeButtonPressed] timeIntervalSinceNow] > 2.0)
{
//
// disable the button. This will eventually fire the event
// but this is just stubbed to act as a break point area.
//
[self setEnabled:NO];
[self setSelected:NO];
}
return (YES);
}
Mon problème est (ce qui est dans le simulateur, ne peut pas faire sur le travail de l'appareil tout à fait encore) « continueTrackingWithTouch: withEvent: » n'est pas appelé à moins que la souris est effectivement déplacé . Cela ne demande pas beaucoup de mouvement, mais il faut du mouvement.
En retour « OUI » dans ces deux, je devrais être configuré pour recevoir des événements en continu. Est-ce une bizarrerie du simulateur ou est-ce que je fais quelque chose de mal?
REMARQUE: userInteractionEnabled est réglé sur OUI.
NOTE2: Je pourrais configurer un minuteur beginTrackingWithTouch: withEvent: mais cela semble plus d'efforts pour quelque chose qui devrait être simple.