iOS UIMenuController复制功能

2016-11-23  本文已影响60人  小傑
#pragma mark -----------    实现长按复制    -----------------------

- (BOOL)canBecomeFirstResponder{
    
    return YES;
}

- (void)setIndexPath:(NSIndexPath *)indexPath
{
    _indexPath = indexPath;
    
    if (indexPath.section != 0)
    {
        UILongPressGestureRecognizer * longPressGesture =         [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(cellLongPress:)];
        [self addGestureRecognizer:longPressGesture];
    }
}

- (void)cellLongPress:(UIGestureRecognizer *)recognizer
{
    
    [self becomeFirstResponder];
    
    UIMenuItem *itCopy = [[UIMenuItem alloc] initWithTitle:@"复制" action:@selector(handleCopyCell:)];
    UIMenuController *menu = [UIMenuController sharedMenuController];
    [menu setMenuItems:[NSArray arrayWithObjects:itCopy, nil]];
    [menu setTargetRect:self.contentView.frame inView:self.contentView.superview];
    [menu setMenuVisible:YES animated:YES];
}

- (void)handleCopyCell:(id)sender
{
    UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
    pasteboard.string = self.viewModel.model.number;
}

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
    if(action == @selector(handleCopyCell:))
    {
        return YES;
    }
    else
    {
        return [super canPerformAction:action withSender:sender];
    }
}
上一篇 下一篇

猜你喜欢

热点阅读