可复制文字的Label

来源:互联网 发布:铃声制作软件 编辑:程序博客网 时间:2024/05/01 23:20

 1. 创建Label子类

2. 重写方法

// 为了能接收到事件
-(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;
}

3.给Label加长按手势
// Label 长按可复制
    self.orderNoLabel.userInteractionEnabled = YES;
    UILongPressGestureRecognizer *touch = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(copyTouchAction:)];
    [self.orderNoLabel addGestureRecognizer:touch];

4.实现长按方法

#pragma mark 复制订单编号
-(void)copyTouchAction:(UIGestureRecognizer*) recognizer
{
    if (recognizer.state == UIGestureRecognizerStateBegan) {
        [self.orderNoLabel becomeFirstResponder];
        
        UIMenuItem *copyLink = [[UIMenuItem alloc] initWithTitle:nil action:nil];
        
        [[UIMenuController sharedMenuController] setMenuItems:[NSArray arrayWithObjects:copyLink, nil]];
        [[UIMenuController sharedMenuController] setTargetRect:self.orderNoLabel.frame inView:self.orderNoLabel.superview];
        [[UIMenuController sharedMenuController] setMenuVisible:YES animated: YES];
    }
0 0