iOS UIMenuController复制功能

#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];
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容