博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自定义粘贴板-陈鹏
阅读量:4312 次
发布时间:2019-06-06

本文共 1816 字,大约阅读时间需要 6 分钟。

接下来我们做一个可复制的UIImageView,创建一个新的viewController,放两个imageView,默认显示不同的图:

-(BOOL)canPerformAction:(SEL)action withSender:(id)sender{      return (action == @selector(copy:) || action == @selector(paste:));  } //标识可运行的方法-(void)copy:(id)sender{      UIPasteboard *pboard = [UIPasteboard generalPasteboard];      pboard.image = self.image;  } //拷贝的方法-(void)paste:(id)sender{      UIPasteboard *pboard = [UIPasteboard generalPasteboard];      self.image = pboard.image;  }//粘贴的方法

 

//自定义粘贴显示菜单
  1. 为了方便实用,我给cell添加了长按事件,看代码---

    UILongPressGestureRecognizer *recognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPress:)];

        [cell addGestureRecognizer:recognizer];

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

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

           if (recognizer.state == UIGestureRecognizerStateBegan) {

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

                 [cell becomeFirstResponder];

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

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

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

                UIMenuController *menu = [UIMenuController sharedMenuController];

            [menu setMenuItems:[NSArray arrayWithObjects:flag, approve, deny, nil]];

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

            [menu setTargetRect:cell.frame inView:cell.superview];

            [menu setMenuVisible:YES animated: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");

    }

转载于:https://www.cnblogs.com/sixindev/p/4588049.html

你可能感兴趣的文章
接口,lambda表达式与内部类
查看>>
【poj1009】 Edge Detection
查看>>
去掉PowerDesigner生成SQL脚本中字段名带的引号
查看>>
win10操作系统安装oracle11g时出现不满足最低配置的操作INS13001
查看>>
java基础学习——7、String类和StringBuffer类的区别
查看>>
js基础
查看>>
sklearn 中 make_blobs模块
查看>>
python学习笔记之多个装饰器
查看>>
自己创建一个android studio在线依赖compile
查看>>
【android】安卓开发apk列表
查看>>
JavaScript高级特性-实现继承的七种方式
查看>>
20121016学习笔记四
查看>>
EntityFramework 学习 一 Stored Procedure
查看>>
Sliverlight之 故事板
查看>>
Java 必知必会的 20 种常用类库和 API
查看>>
HDU 1087 Super Jumping! Jumping! Jumping!
查看>>
0007_初始模块和字节码
查看>>
[效率提升]如何管理好你的电脑文件
查看>>
C++实验二
查看>>
Sultan's Dowry Problem - 苏丹新娘问题
查看>>