要想在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. python定制类(以Fib类为例)

    class Fib(object): def __init__(self): self.a, self.b = 0, 1 def __iter__(self): return self def __n ...

  2. Java基础之垃圾回收

    /** * 对象在没有任何引用可以到达时,生命周期结束,成为垃圾. * 所有对象在被回收之前都会自动调用finalize()方法. * ******************************** ...

  3. PHP用户登录与注册页面

    PHP用户登录模块实现 项目包含的功能脚本: login.php//登录 reg.php//注册用户 user_add.php//注册校验脚本 user_login_check.php//登录校验脚本 ...

  4. 手机端 UI一些插件

    手机弹出框 http://yun.baidu.com/share/link?shareid=3523128425&uk=2685891615

  5. PHP合并数组+与array_merge的区别分析

    主要区别是两个或者多个数组中如果出现相同键名,键名分为字符串或者数字,需要注意 1)键名为数字时,array_merge()不会覆盖掉原来的值,但+合并数组则会把最先出现的值作为最终结果返回,而把后面 ...

  6. slave 成为master 时候执行的操作notify_master /etc/keepalived/send_master.sh

    slave:/root# cat /etc/keepalived/keepalived.conf global_defs { router_id MySQL-ha } vrrp_instance VI ...

  7. 吃透C#集合~大话目录

    最近买了一本<C#数据结构>的书,这种书确实少见,一般的数据结构都是采用C,C++来实现的,C#可以说是稀有了,呵呵,书写的不错,把C#的核心Collections介绍了一个透彻,对于我来 ...

  8. android raw与assets资源

    *res/raw和assets的同样点: 1.两者文件夹下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制. *res/raw和assets的不同点: 1.res/raw中的文件会被映射 ...

  9. 读书笔记 SQL 事务理解

    事务的ACID属性 Atomicity 原子性 每个事务作为原子单元工作(即不可以再拆分),也就是说所有数据库变动事务,要么成功要么不成功. SQL Server把每个DML或者 DDL命令都当做一个 ...

  10. VS2015 启用“仅我的代码”

    在调试网站的时候,如果不勾选 [启用"仅我的代码"],会跳出一大堆异常,但是异常不作处理,非常烦人: 解决办法就是在 [调试]->[选项]->[勾选 启用"仅 ...