UICopyLable

- (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//用户交互的总开关

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

    touch.numberOfTapsRequired = 2;

    [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];

}


你可能感兴趣的:(UICopyLable)