• UIMenuController在label中的使用


    要想在label中使用 必须是继承于label的分类

    //
    //  MYlabel.m
    //  MenuController
    //
    //  Created by 张明 on 16/3/8.
    //  Copyright © 2016年 张明. All rights reserved.
    //

    #import "MYlabel.h"

    @implementation MYlabel

    - (void)awakeFromNib
    {
        
        [self setup];
        
    }

    - (instancetype)initWithFrame:(CGRect)frame
    {
        if (self = [super initWithFrame:frame]) {
            [self setup];
        }
        return self;
    }

    - (void)setup
    {
        self.userInteractionEnabled = YES;
        
         [self addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(labelClick)]];
    }

    /*
     让label有资格成为第一响应者
     
     */
    - (BOOL)canBecomeFirstResponder
    {
        return YES;
    }


    - (void)labelClick
    {
        //1.label要成为第一响应者(作用是:告诉UIMenuController支持哪些操作,这些操作如何处理)
        [self becomeFirstResponder];
        
        //2.显示MenuController
        UIMenuController *menu = [UIMenuController sharedMenuController];
        //targetRect :MenuController需要指向的矩形框
        //targetview:targetrect会以targetview的左上角为坐标原点
        
        [menu setTargetRect:self.bounds inView:self];
        [menu setMenuVisible:YES animated:YES];
        
    }
    /*
     label能执行哪些操作(比如copy.paste 等等)
     
     @return YES:支持这种操作
     
     */
    - (BOOL)canPerformAction:(SEL)action withSender:(id)sender
    {
        if (action == @selector(cut:) || action == @selector(copy:) || action == @selector(paste:)) return YES;
        
        return NO;
        
    }

    - (void)copy:(id)sender
    {
        //将自己的文字赋值到粘贴板
        UIPasteboard *board = [UIPasteboard generalPasteboard];
        board.string = self.text;
    }

    - (void)cut:(id)sender
    {
        //将自己的文字赋值到粘贴板
        [self copy:sender];
        
        //清空文字
        self.text = nil;
        
        
    }

    - (void)paste:(id)sender
    {
        
        //将粘贴板的文字复制到自己身上
        UIPasteboard *board = [UIPasteboard generalPasteboard];
        
        self.text = board.string;
        

    }



    @end

  • 相关阅读:
    B16-高可用OpenStack(t版)集群分布式存储Ceph部署
    B15-openstack高可用(t版)-cinder计算节点集群
    B14-openstack高可用(t版)-cinder控制节点集群
    B13-openstack高可用(t版)-horazion计算节点集群
    B12-openstack高可用(t版)-Neutron计算节点集群
    B11-openstack高可用(t版)-Neutron控制/网络节点集群
    mysql(windows 10 安装)
    docker 容器 centos + tomcat + jdk
    docker 安装
    docker 把镜像打包成文件
  • 原文地址:https://www.cnblogs.com/zmloveworld/p/5255598.html
Copyright © 2020-2023  润新知