zoukankan      html  css  js  c++  java
  • 自定义粘贴板-陈鹏

    接下来我们做一个可复制的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");


      }

  • 相关阅读:
    Java使用AES算法
    Python中使用AES算法(解决Python2.x和3.x下运行不兼容问题)
    关于递归
    zabbix文档3.4
    CentOS-7.3.1611编译安装 Nginx-1.12.1+mysql-5.7.19+PHP-7.1.8+zabbix-3.4.1
    搭建zabbix服务器监控
    php编译安装过程中遇到问题
    springboot 获取控制器参数的几种方式
    spring boot 全局异常处理及自定义异常类
    Java 中的异常和处理详解
  • 原文地址:https://www.cnblogs.com/sixindev/p/4588049.html
Copyright © 2011-2022 走看看