continueTrackingWithTouch: withEvent: not being called continuously.
- by Steven Noyes
I have a very simply subclass of UIButton that will fire off a custom event when the button has been held for 2 seconds.  To accomplish this, I overrode:
//
// 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);
}
My problem is (this is in the simulator, can't do on device work quite yet) "continueTrackingWithTouch: withEvent:" is not being called unless the mouse is actually moved.  It does not take much motion, but it does take some motion.
By returning "YES" in both of these, I should be setup to receive continuous events.  Is this an oddity of the simulator or am I doing something wrong?
NOTE: userInteractionEnabled is set to YES.
NOTE2: I could setup a timer in beginTrackingWithTouch: withEvent: but that seems like more effort for something that should be simple.