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

时间: 2024-10-13 11:47:28

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

bug:在label中包含img,在IE中点击图片的时候,radio没有被选中,别的浏览器可以

bug:在label中包含img,在IE中点击图片的时候,按钮没有被选中,别的浏览器可以 代码如下: 1 <td class="left"> 2 <input type="radio" name="sex" id="boy"/> 3 <label for="boy" disabled=""><img src="images/boy.jp

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

今天遇到一个需求,需要计算label中文字的行数.想了好久也没想到好的解决方法,就在网上找了下.结果发现一篇文章是讲这个的.这部分代码不但能够求出一个label中文字行数,更厉害的是能够求出每一行的内容是什么: 代码如下. #import <CoreText/CoreText.h> - (NSArray *)getLinesArrayOfStringInLabel:(UILabel *)label{ NSString *text = [label text]; UIFont *font = [

改变Label中不同位置的字的颜色

? 1 2 3 4 5 6 //取出想要变得字符串在大字符串的什么地方     NSRange changeRange = [chapterStr rangeOfString:totalImg];     //字显示不同的颜色     NSMutableAttributedString *attributedStr = [[NSMutableAttributedString alloc]initWithString:chapterStr];     [attributedStr addAttri

应用键横竖屏切换;label中显示图片;不同类型设备适配的代码;UIWebView字体大小、字体颜色、背景色的设置;

最近总结的工作中遇到的小问题在这里共享 ,希望对大家能有帮助 1.横屏的一个应用在修改个人资料过程从相册取图片或者拍照的过程中,横纵屏切换引起再次进入程序时应用变纵屏的bug --------------主页面控制器中点击进入个人资料页面的地方:---------------------- - (void)changepersonIcon{ UIActionSheet*actionSheet = [[UIActionSheetalloc] initWithTitle:@"选择封面图片"

解决在IE下label中IMG图片无法选中radio的几个方法

今天遇到一个问题,在IE浏览器下,使用label FOR radio后,label中的图片无法选中.例如,这样的代码 <input type="radio" name="radio" id="a" /><label for="a"><img src="/Labs/images/logo.gif" /></label> ,这种情况下,点击label的图片将无法选

winform 读取TXT文件 放在Label中

<span style="font-family: Arial, Helvetica, sans-serif;">#region 读取TXT 文件,放到Label中</span> private void ReadTXT(Label lab) { string strTxtAll = "";//定义一个string变量 string abc = "C:\Users\xxb\Desktop\1.txt";//路径 FileS

label中的关键字高亮

一 .在初始化方法中把所有需要高亮关键字的label加入到labels数组中,并且把这些label原来字体的颜色加入到 labelTextColors中 ,代码如下 self.labels = [NSArray arrayWithObjects:self.textLabel,self.detailTextLabel, nil]; self.labelTextColors = [NSArray arrayWithObjects:kColor_Black,kColor_LightGray, nil]

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

不知道大家有没有遇到要设置某些字体的颜色和大小等属性的设置,下面就让我们一起走进字体的变形王国吧!!! 1.在storyboard中拖一个控件label,拖线设置属性为: @property (weak, nonatomic) IBOutlet UILabel *EasyLabel; 2.在viewDidLoad中设置属性: 主要用到的一个关键字眼是attribute ,请看下面的代码: - (void)viewDidLoad { [super viewDidLoad]; // attribut

IOS中获取label中文本的高度及tableviewCell的自适应

1.NSString有个方法,可以获取字符串实际所占高度和宽度.可以用到UITableViewCell的自适应上在IOS7之前,用下边的 - (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(NSLineBreakMode)lineBreakMode; 是用来获取文本内容在指定的size内,算出所需要的实际宽度和高度.如 //这是获取字符串在指定的size内(宽度超过175,则换行)