Hi Roland, Thanks for answering my question. Shouldn't this be very restrictive though? I don't know the statistics, but I'm pretty sure that there is a large number of people having an old version of the OS.
aa On Jun 5, 2010, at 10:04 PM, Roland King wrote: > or if you are coding for 3.2 or later, use a UILongPressGestureRecognizer and > let it do all the work. > > On 06-Jun-2010, at 12:36 AM, Scott Andrew wrote: > >> I believe the way to do this is to setup a timer on touchDown to fire once >> after X number of seconds. Your touchUp and touchCancelled should kill the >> timer if the timer is exists and is not invalidated. If you hit the timer >> you are being held. When the timer is hit you restart the timer again for >> the next check. >> >> Scott >> >> >> On Jun 4, 2010, at 7:16 PM, Alejandro Marcos Aragón wrote: >> >>> Hi all, >>> >>> I've been trying to detect touch and hold vs touch on a subclass of >>> UIButton. I basically accomplished that by doing the following: >>> >>> I first add the following when the button is created: >>> >>> >>> [button addTarget:self action:@selector(sourceSelected:) >>> forControlEvents:UIControlEventTouchUpInside]; >>> [button addTarget:self action:@selector(sourceTouchDown:) >>> forControlEvents:UIControlEventTouchDown]; >>> >>> Then in the functions: >>> >>> - (void) sourceSelected:(UIButton*) sender { >>> >>> >>> // cancel request for extended meny >>> [NSObject cancelPreviousPerformRequestsWithTarget:self >>> selector:@selector(sourceSelectedExtended:) object:sender]; >>> ... >>> } >>> >>> - (void) sourceTouchDown:(UIButton*) sender { >>> >>> // give time before performing action >>> [self performSelector:@selector(sourceSelectedExtended:) >>> withObject:sender afterDelay:0.5]; >>> } >>> >>> - (void) sourceSelectedExtended:(UIButton*) sender { >>> >>> // remove action from button >>> [sender removeTarget:self action:@selector(sourceSelected:) >>> forControlEvents:UIControlEventTouchUpInside]; >>> ... >>> ... >>> // give time before performing action >>> [self performSelector:@selector(addSourceAction:) withObject:sender >>> afterDelay:1.]; >>> >>> } >>> >>> - (void) addSourceAction:(UIButton*)sender { >>> >>> // remove action from button >>> [sender addTarget:self action:@selector(sourceSelected:) >>> forControlEvents:UIControlEventTouchUpInside]; >>> >>> } >>> >>> >>> >>> Now, this works fine, but then I thought there must be an easier (and >>> definitely more elegant) way to accomplish the same thing. >>> >>> Can someone through me a line here? >>> >>> Thank you all, >>> >>> aa >>> >>> >>> _______________________________________________ >>> >>> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) >>> >>> Please do not post admin requests or moderator comments to the list. >>> Contact the moderators at cocoa-dev-admins(at)lists.apple.com >>> >>> Help/Unsubscribe/Update your Subscription: >>> http://lists.apple.com/mailman/options/cocoa-dev/scottandrew%40roadrunner.com >>> >>> This email sent to scottand...@roadrunner.com >> >> _______________________________________________ >> >> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) >> >> Please do not post admin requests or moderator comments to the list. >> Contact the moderators at cocoa-dev-admins(at)lists.apple.com >> >> Help/Unsubscribe/Update your Subscription: >> http://lists.apple.com/mailman/options/cocoa-dev/rols%40rols.org >> >> This email sent to r...@rols.org > _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com