打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
IOS学习笔记37

这篇咱总结总结自定义剪贴板的使用

其实自定义剪贴板也非常简单,无非是放开响应时间,通过UIMenuController自定义剪贴板,然后就是最关键的实现你所用的copy方法拉。

为了方便实用,我给cell添加了长按事件,看代码---

UILongPressGestureRecognizer *recognizer = [[UILongPressGestureRecognizeralloc] initWithTarget:selfaction:@selector(longPress:)];

    [cell addGestureRecognizer:recognizer];

好,事件加上了,剩下的点击就是实现自定义剪贴板了,上代码:

- (void)longPress:(UILongPressGestureRecognizer *)recognizer{

       if (recognizer.state ==UIGestureRecognizerStateBegan) {

             CopyCell *cell = (CopyCell *)recognizer.view;

             [cell becomeFirstResponder];

            UIMenuItem *flag = [[UIMenuItemalloc] initWithTitle:@"Flag"action:@selector(flag:)];

            UIMenuItem *approve = [[UIMenuItemalloc] initWithTitle:@"Approve"action:@selector(approve:)];

            UIMenuItem *deny = [[UIMenuItemalloc] initWithTitle:@"Deny"action:@selector(deny:)];

            UIMenuController *menu = [UIMenuControllersharedMenuController];


        [menu setMenuItems:[NSArrayarrayWithObjects:flag, approve, deny, nil]];


        NSLog(@".....%@",NSStringFromCGRect(cell.frame));

        [menu setTargetRect:cell.frameinView:cell.superview];


        [menu setMenuVisible:YESanimated:YES];

      }

}

通过上面这段代码,自定义剪贴板成功搞定,运行,你猛然会发现,操,怎么剪贴板没有出来,我猜你已经想到为什么了,因为

- (BOOL)canBecomeFirstResponder{

    return YES;

}

这么重要的一句话没有加,OK,下面就是你所要使用的方法了

- (void)flag:(id)sender {


    NSLog(@"Cell was flagged");


}

- (void)approve:(id)sender {


    NSLog(@"Cell was approved");

}


- (void)deny:(id)sender {


    NSLog(@"Cell was denied");


}

好,这就是基本的剪贴板的自定义使用了,为了更直观,上述三篇文章均由下面相似的效果图一张




本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
ios开发之实现长按UITableViewCell弹出UIMenuController
长按UITableViewCell弹出UIMenuController | LvesLi's Blogging
iOS-响应上下左右滑动手势
UITapGestureRecognizer 的用法
iOS多线程开发 NSThread
iOS 第6项目个别技术点
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服