实现长按复制内容需要实现tableView的三个代理方法。
1、指定在哪里可以显示菜单。
- (BOOL)tableView:(UITableView *)tableView shouldShowMenuForRowAtIndexPath:(NSIndexPath *)indexPath{
return YES;// 设置哪里都能显示。
}
2、指定哪一行显示什么操作
action包括(cut、copy、paste、select、selectAll)
- (BOOL)tableView:(UITableView *)tableView canPerformAction:(SEL)action forRowAtIndexPath:(NSIndexPath *)indexPath withSender:(id)sender{
// 设置只能复制
if (action == @selector(cut:)){
return NO;
}
else if(action == @selector(copy:)){
return YES;
}
else if(action == @selector(paste:)){
return NO;
}
else if(action == @selector(select:)){
return NO;
}
else if(action == @selector(selectAll:)){
return NO;
}
else{
return [super canPerformAction:action withSender:sender];
}
3、执行操作,设置操作对应的内容
- (void)tableView:(UITableView *)tableView performAction:(SEL)action forRowAtIndexPath:(NSIndexPath *)indexPath withSender:(id)sender{
NSString *phoneStr = [self.sourceArr[indexPath.row][@"title"] substringFromIndex:4];
if (action == @selector(copy:)) {
// 把获取到的字符串放置到剪贴板上
[UIPasteboard generalPasteboard].string = phoneStr;
}
}