Don't delay the action/target part, write a wrapper function and delay that:
- (void)mouseUp:(NSEvent*)event { UNUSED_VAR(event); NSMenuItem* item = [self enclosingMenuItem]; NSMenu* menu = [item menu]; // On mouseUp, we want to dismiss the menu being tracked: [menu cancelTracking]; [self performSelector:@selector(delayedSendAction:) withObject:item afterDelay:0]; } - (void)delayedSendAction: (NSMenuItem *)item { // Then send the action to the target: SEL act = [item action]; id targ = [item target]; if(act != nil && targ != nil) // [NSApp sendAction:act to:targ from:item]; // Temporarily sending the About menu item so it'll fire the About box: [NSApp sendAction:act to:targ from:[menu itemAtIndex:0]]; // Copied from MenuItemView sample project. I don't think this is necessary: // [self setNeedsDisplay:YES]; } On May 29, 2013, at 4:34 PM, Steve Mills wrote: > On May 29, 2013, at 18:06:45, Lee Ann Rucker <lruc...@vmware.com> > wrote: > >> Use performSelector:withObject:afterDelay:0 to push your response to the end >> of the run loop, giving the UI a chance to update first. It's what I do when >> a button (etc) is going to trigger something that won't be instantaneous, >> where the button shouldn't keep showing in the pressed state while it >> happens. > > Good idea, but I need to send the 3rd parameter; the selector, the target, > and the sender. I can't do that with performSelector:withObject:afterDelay:. > > -- > Steve Mills > office: 952-818-3871 > home: 952-401-6255 > cell: 612-803-6157 > > > > _______________________________________________ > > 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: > https://lists.apple.com/mailman/options/cocoa-dev/lrucker%40vmware.com > > This email sent to lruc...@vmware.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: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com