1. 程式人生 > >長按UITableViewCell彈出UIMenuController

長按UITableViewCell彈出UIMenuController

[self addGestureRecognizer: [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longTap:)]];

- (void)longTap:(UILongPressGestureRecognizer *)gestureRecognizer {
    if ([gestureRecognizer state]==UIGestureRecognizerStateBegan) {
        [self becomeFirstResponder];
        
        UIMenuController *
menuController = [UIMenuController sharedMenuController]; UIMenuItem *copyItem = [[UIMenuItem alloc] initWithTitle:@"start" action:@selector(startAction)]; UIMenuItem *colloctionItem = [[UIMenuItem alloc] initWithTitle:@"stop" action:@selector(stopAction)]; [menuController setMenuItems:
[NSArray arrayWithObjects:copyItem,colloctionItem, nil]]; [menuController setTargetRect:self.frame inView:self.superview]; [menuController setMenuVisible:YES animated:YES]; } } - (BOOL)canPerformAction:(SEL)action withSender:(id)sender { if(action ==@selector(startAction)
){ return YES; } else if (action==@selector(stopAction)) { return YES; } return [super canPerformAction:action withSender:sender];; } - (BOOL)canBecomeFirstResponder { return YES; } - (void)startAction { if (self.startBlock) { self.startBlock(); } } - (void)stopAction { if (self.stopBlock) { self.stopBlock(); } } - (void)scrollViewDidScroll:(UIScrollView *)scrollView { if ([UIMenuController sharedMenuController].isMenuVisible) { [[UIMenuController sharedMenuController] setMenuVisible:NO animated:YES]; } }