1.首先在需要长按的view上增加一个UILongPressGestureRecognizer
2.写下面的响应方法显示
- (void)longPressedComment:(UILongPressGestureRecognizer *)gesture{
if(gesture.state == UIGestureRecognizerStateBegan){
UITableViewCell *cell = (UITableViewCell *)gesture.view;
[cell becomeFirstResponder];
UIMenuItem *copyItem = [[UIMenuItem alloc] initWithTitle:NSLocalizedString(@"Copy", @"拷贝") action:@selector(copyText:)];
UIMenuItem *deleteItem = [[UIMenuItem alloc] initWithTitle:@"删除" action:@selector(deleteComment:)];
[UIMenuController sharedMenuController].menuItems = [NSArray arrayWithObjects:deleteItem, nil];
[[UIMenuController sharedMenuController] setMenuVisible:NO];
[[UIMenuController sharedMenuController] setTargetRect:cell.frame inView:cell.superview];
[[UIMenuController sharedMenuController] setMenuVisible:YES animated:YES];
}
}
3.必须实现下面两个方法才能显示出来
- (BOOL)canBecomeFirstResponder{
return YES;
}
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender{
if (action == @selector(copyText:) || action == @selector(deleteComment:))
{
return YES;
}
else
{
return NO;
}
}
4.复制到粘贴板的实现
//复制功能
- (void)copyText:(id)sender{
[UIMenuController sharedMenuController].menuItems = nil;
UIPasteboard *myBoard = [UIPasteboard generalPasteboard];
//自己获取到需要复制的内容并复制过来
NSMutableString *message = @"message";
myBoard.string = message;
}