要想在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

最新文章

  1. AX7: Quick and easy debugging
  2. 建立时间和保持时间(setup time 和 hold time)
  3. Array-基本功能
  4. div 一段时间后自动隐藏
  5. EntityFramework:支持同一事务提交的批量删除数据实现思路
  6. 洛谷P1251 餐巾(网络流)
  7. 【HDU 5233】Tree chain problem (树形DP+树剖+线段树|树状数组)最大权不相交树链集
  8. java.lang.UnsupportedClassVersionError(Unsupported major.minor version 49.0)报错
  9. ios7新特性1-UI变化、UIKit动态行为支持与Text Kit新接口
  10. SQL 语句修改列名 属性 默认值
  11. C# Environment类_获取程序所在机器信息
  12. 吐血总结|史上最全的MySQL学习资料!!
  13. ssh项目问题01,为创建数据库抛出的异常
  14. Spring Boot 2.0 新特性和发展方向
  15. Shell - 简明Shell入门15 - 调试(Debug)
  16. leetcode_输入一个数组,目标树,检查目标是数组下标的哪两个之和,不准重复
  17. Python算法——递归思想
  18. triton,docker,mesos
  19. 保留注释换行的python模块configparser
  20. 使用update_attribute和validation

热门文章

  1. QT国际化
  2. centos下zookeeper集群搭建
  3. php study plan personal
  4. python,redis简单订阅
  5. scanf一次给多个变量赋值
  6. 个人收集资料整理-WebForm
  7. Genymotion配置及使用教程(最新最完整版附各部分下载地址)
  8. 第七届河南省赛10403: D.山区修路(dp)
  9. poj 2480 (欧拉函数应用)
  10. TCP各种连接状态注释