【iOS】UITableViewCell点击出现菜单UIMenuController

UITableViewCell默认为长按出现菜单,现需要点击出现菜单,用在评论中,点击回复,复制 等功能

实现点击自定义UITableViewCell时展示一个自定义菜单的功能。


//全局初始化菜单
-(void)initMenu
{
    UIMenuController *menuController = [UIMenuController sharedMenuController];
    
    [menuController setMenuVisible:YES animated:YES];
    [menuController setMenuItems:@[
                                   [[UIMenuItem alloc] initWithTitle:@"回复" action:NSSelectorFromString(@"replyObject:")],
                                   [[UIMenuItem alloc] initWithTitle:@"复制" action:NSSelectorFromString(@"copyText:")],
                                   [[UIMenuItem alloc] initWithTitle:@"举报" action:NSSelectorFromString(@"reportObject:")]
                                   ]];
}

//
//  UITableViewCell.m

- (void)addTap{
      //UITableViewCell中添加
     [self addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(showMenu)]];
}

#pragma mark - tap

- (void)showMenu{
    if(self.isFirstResponder){
        [self resignFirstResponder];
    }else{
        [self becomeFirstResponder];
    }
    NSLog(@"showMenu:------%@", @(self.isFirstResponder));
    UIMenuController *menuController = [UIMenuController sharedMenuController];
    
    [menuController setMenuVisible:YES animated:YES];
    [menuController setTargetRect:_contentLabel.frame inView:self];
}

#pragma mark - FirstResponder()

- (BOOL)canPerformAction:(SEL)action withSender:(nullable id)sender
{
//    return _canPerformAction(self, action);
    return action==@selector(replyObject:)||
    action==@selector(reportObject:)||
    action==@selector(copyText:);
}

- (BOOL)canBecomeFirstResponder
{
    return YES;
}

- (void)copyText:(id)sender
{
    UIPasteboard *pasteBoard = [UIPasteboard generalPasteboard];
    [pasteBoard setString:_contentLabel.text];
    [MBProgressHUD showText:@"已复制"];
}

- (void)reportObject:(id)sender
{
    _reportObject(self);
}

- (void)replyObject:(id)sender
{
    _replyObject(self);
}

 

UITableViewCell点击的自定义菜单 :http://www.jianshu.com/p/a74c250331c7

转载于:https://my.oschina.net/onepieceios/blog/737401

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值