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

转载于:https://www.cnblogs.com/zmloveworld/p/5255598.html

UIMenuController在label中的使用相关推荐

  1. Linux下vi修改行距,调整label中text显示的行间距

    iOS UILabel UITextView UIButton 等等显示文本行间距 iOS UILabel  UITextView UIButton 等等显示文本行间距都用如下方法 NSMutable ...

  2. QT 中 界面中消息的停留时间解决方案 以及 label 中字体大小和换行设置

    QT 中 界面中消息的停留时间解决方案 以及 label 中字体大小和换行设置 参考文章: (1)QT 中 界面中消息的停留时间解决方案 以及 label 中字体大小和换行设置 (2)https:// ...

  3. python怎么改字体_python,tkinter_Tkinter Label 如何改变Label中的文字样式,例如给文字加删除线,python,tkinter - phpStudy...

    Tkinter Label 如何改变Label中的文字样式,例如给文字加删除线 如题.未查到Tkinter下,促发条件后,是否能修改label中文字的样式 class Pomodoro_app(Tk) ...

  4. iostext添加点击事件_iOS开发小技巧 - label中的文字添加点击事件

    Label中的文字添加点击事件 以前老师讲过类似的功能,自己懒得回头看了,找了很多第三方的,感觉这个小巧便利,作者只是扩展了分类,实现起来代码也少.先来个效果图 自己的项目,直接上代码 - (void ...

  5. QT界面:重写鼠标事件/实时显示Label中鼠标位置

    为了在QT UI界面的状态栏实时显示鼠标在Label中的位置,需要重写鼠标事件MouseMoveEvent(). 但是MouseMoveEvent为了不过多消耗资源,默认需要鼠标按下捕捉到.因此需要在 ...

  6. java里怎么使字居中显示,JAVA怎样使Label中的文字居中对齐!

    优质回答 回答者:Catsayer丷 请看API Label中静态变量 static int CENTER 指示标签文本应居中. static int LEFT 指示标签文本应左对齐. static ...

  7. iOS项目开发实战——Label中字体字号与Label多行显示

    我们如何通过OC代码来设置Label中显示的文本呢?代码如下: #import "ViewController.h"@interface ViewController ()@end ...

  8. 自定义UI控件:继承UIlabel,使label中的文字居上,居中,居下

    一般来说,在ios里面label中的文字垂直方向上是默认居中的,如果想要设置居上或者居下,在xib文件里面不能设置,只能自定义一个UI控件. label文字的水平位置,可以在xib文件中直接设置. i ...

  9. randint函数 在tkinter.label 中的应用

    关键词:randint函数 label font 字体.大小 tk .Label( text, font = (字体, 大小, 样式) import random # randint函数,来自rand ...

最新文章

  1. Xtrabackup bug记录
  2. 全球及中国管道运输行业建设发展与投资战略规划报告2022版
  3. python人脸识别源码_Python 抖音机器人,让你找到漂亮小姐姐
  4. Helm 3 完整教程(一):Helm 3 简介
  5. ppt倒计时3分钟_老板发来200页PPT文件,让我翻译成英文,3分钟教你搞定
  6. 程序员的生活照,最后一个绝了!有同感吗?
  7. System进程下vibran_drv.sys CPU占用率高
  8. 物理学家用AI改写教科书!质子中发现新的夸克,可能性高达99.7%
  9. 植物大战僵尸存档关卡和金币修改
  10. 限制Editext输入字节长度
  11. github问题之Unable to retrieve your user info from the server
  12. SEO的职业发展规划及SEO优化未来的发展方向是什么?
  13. CMAP1000-05气象数字压力校验系统
  14. 《计算机应用基础》第04章在线测试,《计算机应用基础》在线测试.doc
  15. VS2008的安装注意事项
  16. html手机上传图片去除拍照,HTML5手机拍照上传
  17. SRS4.0源代码分析之RTMP拉流处理
  18. Jinja2+django+uwsgi+nginx
  19. SOA精华的内容和实用的知识
  20. 2019-10-28-dotnet-代码调试方法

热门文章

  1. Spring MVC 流程图解析
  2. 流浪的python博客园_python学习心得第一章
  3. python sns绘制回归线_Python数分实战:员工流失情况预测
  4. JAVA中自己写的util中的chop,Java StringUtils.chop方法代碼示例
  5. slope one 推荐算法python 代码_协同推荐算法实践之Slope One的介绍(转)
  6. oc 画一个圆弧_SolidWorks一步扫描特征,就可以画出一个螺母,你有思路吗
  7. Linux启动tomcat命令行关闭后服务会停止
  8. Linux上下载chronyd安装包,如何在Linux中安装和使用Chrony时间同步
  9. c语言项开发班级登入系统,c语言--班级管理系统
  10. 东北大学c语言真题及答案,东北大学C语言总测试题(含答案).pdf