自定义UIMenuItem

来源:互联网 发布:淘宝人生全文免费阅读 编辑:程序博客网 时间:2024/05/16 14:04

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;}
原创粉丝点击