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

Reply via email to