美文网首页
CopyLabel:iOS拥有复制功能的Label

CopyLabel:iOS拥有复制功能的Label

作者: 全栈的猫南北 | 来源:发表于2017-04-19 16:06 被阅读0次

    使用方法:

    使用方法相当简单,和系统的UIlabel使用方法一样,只需要设置相应位置即可。

    .m中具体代码:

    #import "CopyLabel.h"

    @implementation CopyLabel

    -(BOOL)canBecomeFirstResponder {

    return YES;

    }

    // 可以响应的方法

    -(BOOL)canPerformAction:(SEL)action withSender:(id)sender {

    return (action == @selector(copy:));

    }

    //针对于响应方法的实现

    -(void)copy:(id)sender {

    UIPasteboard *pboard = [UIPasteboard generalPasteboard];

    pboard.string = self.text;

    }

    //UILabel默认是不接收事件的,我们需要自己添加touch事件

    -(void)attachTapHandler {

    self.userInteractionEnabled = YES;

    UILongPressGestureRecognizer *touch = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];

    [self addGestureRecognizer:touch];

    }

    //绑定事件

    - (id)initWithFrame:(CGRect)frame {

    self = [super initWithFrame:frame];

    if (self) {

    [self attachTapHandler];

    }

    return self;

    }

    -(void)awakeFromNib {

    [super awakeFromNib];

    [self attachTapHandler];

    }

    -(void)handleTap:(UIGestureRecognizer*) recognizer {

    [self becomeFirstResponder];

    UIMenuItem *copyLink = [[UIMenuItem alloc] initWithTitle:@"复制"action:@selector(copy:)];

    [[UIMenuController sharedMenuController] setMenuItems:[NSArray arrayWithObjects:copyLink, nil]];

    [[UIMenuController sharedMenuController] setTargetRect:self.frame inView:self.superview];

    [[UIMenuController sharedMenuController] setMenuVisible:YES animated: YES];

    }

    @end

    相关文章

      网友评论

          本文标题:CopyLabel:iOS拥有复制功能的Label

          本文链接:https://www.haomeiwen.com/subject/fkmbgttx.html