У меня есть очень простой подкласс UIButton, который запустит пользовательское событие, когда кнопка удерживается в течение 2 секунд. Для достижения этой цели, я отменяю:continueTrackingWithTouch: withEvent: не вызывается непрерывно
//
// 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);
}
Моей проблема (это в симуляторе, не может делать на работе устройства совсем еще) «continueTrackingWithTouch: withEvent:» не вызывается, если мышь не будет перемещена , Это не требует большого движения, но это требует некоторого движения.
Возвращая «ДА» в обоих из них, я должен быть настроен для приема непрерывных событий. Это странность симулятора, или я делаю что-то неправильно?
ПРИМЕЧАНИЕ: для параметра userInteractionEnabled установлено значение YES.
NOTE2: Я мог бы установить таймер в beginTrackingWithTouch: withEvent: но это похоже на большее усилие для чего-то, что должно быть простым.