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/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to