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

UIMenuController在label中的使用的更多相关文章

  1. iOS开发小技巧 - label中的文字添加点击事件

    Label中的文字添加点击事件 GitHub地址:https://github.com/lyb5834/YBAttributeTextTapAction 以前老师讲过类似的功能,自己懒得回头看了,找了 ...

  2. 调整label中text显示的行间距

    调整label中text显示的行间距最近再做一个项目时,发现UILabel中text的系统默认行间距不能满足要求,于是在网上找到了调整行间距的代码.跟大家分享一下,希望能对你有所帮助.悦德财富:htt ...

  3. winform 读取TXT文件 放在Label中 分类: WinForm 2014-07-31 09:56 310人阅读 评论(0) 收藏

    <span style="font-family: Arial, Helvetica, sans-serif;">#region 读取TXT 文件,放到Label中&l ...

  4. winform 绘制label 中文字 - 摘

    private void label2_Paint(object sender, PaintEventArgs e) {//绘制label中文字 string text = "Sri Lan ...

  5. qt designer设置界面是label中文字与文本框对齐设置

    往往在使用 qt designer布置界面时,添加的label和文本框中是直接从工具箱中拖进去的,由于每个控件尺寸大小不一,就会造成label中的文字相对于文本框比较较偏上,看下面未经调整的直接效果 ...

  6. iOS中求出label中文字的行数和每一行的内容

    今天遇到一个需求,需要计算label中文字的行数.想了好久也没想到好的解决方法,就在网上找了下.结果发现一篇文章是讲这个的.这部分代码不但能够求出一个label中文字行数,更厉害的是能够求出每一行的内 ...

  7. label中设置某些指定的字体的属性设置(Color,Size,FontColor)

    不知道大家有没有遇到要设置某些字体的颜色和大小等属性的设置,下面就让我们一起走进字体的变形王国吧!!! 1.在storyboard中拖一个控件label,拖线设置属性为: @property (wea ...

  8. 在Label中显示一段文字

    Let’s create a new Xamarin.Forms PCL solution, named Greetings, using the same process described abo ...

  9. input中的name,value以及label中的for

    input具有很多属性,比较常用的有type,value,name,placeholder,multiple,checked等.对于其中的name.value.label相关以及标签外的文字,我一直是 ...

随机推荐

  1. 使用 UML 进行业务建模:理解业务用例与系统用例的相似和不同之处

    使用 UML 进行业务建模:理解业务用例与系统用例的相似和不同之处   作者:Arthur V. English 出处:IBM   本文内容包括: 背景 业务用例模型与系统用例模型有什么相似之处? 业 ...

  2. request.getParameter中文乱码问题

    http请求是以ISO-8859-1的编码来传送url的 如果页面的content-type为utf-8,那么在发送请求时,会将字符转成utf-8后进行传送              如: 中 的UT ...

  3. Gow工具

    一 Gow 是什么 Gow (Gnu On Windows) is the lightweight alternative to Cygwin. It uses a convenient NSIS i ...

  4. python 学习之Windows 下的编码处理!

    问题1: Non-ASCII character '\xe9' in file 问题原因:程序编码上出现问题 解决方法:在程序头部加上代码 #-*- coding: UTF-8 -*- 设置代码编码为 ...

  5. 关于iPhone

    ---------------------- 美版有三个版本 A S V A版不能用电信卡,S不能发短信 据说还可能再次上锁 V版目前是大家认为最安全的版本 价格也是比A和S贵的 港版比V版唯一的好处 ...

  6. for循环产生的Cortex-M3汇编代码的一个奇怪现象

    最近比较一下KEIL和IAR两个编译器产生的代码,基于Cortex-M3处理器的,然后发现了一几个奇怪的地方. 很简单的一个C的for循环 void fun_for_add_65535(void) { ...

  7. Python输出中文乱码问题

    //建立一个文件test.txt,文件格式用ANSI,内容为: //abc中文 //用python来读取 # coding=gbk print open("Test.txt").r ...

  8. Easyui登陆页面制作

    一.登陆页面HTML <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Web ...

  9. BZOJ 3612: [Heoi2014]平衡( dp )

    枚举Fl, 就变成一个整数划分的问题了...f(i,j) = f(i-j,j-1)+f(i-j,j)-f(i-N-1,j-1)递推.f(i,j)表示数i由j个不同的数组成,且最大不超过N的方案数 -- ...

  10. Hadoop学习笔记(3)hadoop伪分布模式安装

    为了学习这部分的功能,我们这里的linux都是使用root用户登录的.所以每个命令的前面都有一个#符号. 伪分布模式安装步骤: 关闭防火墙 修改ip地址 修改hostname 设置ssh自动登录 安装 ...