UIlabel,文字复制

首先创建一个类继承于UILabel;因为label默认是不接收事件的,我们需要自己给label添加touch事件。

/* 1.给label添加touch事件 */
-(void)addTouch{
    self.userInteractionEnabled = YES;  //用户交互的总开关
    UILongPressGestureRecognizer *touch = [[UILongPressGestureRecognizer alloc] initWithTarget:self                action:@selector(addgesture:)];
    [self addGestureRecognizer:touch];
}

 
手势触发的事件 

/* 2.手势触发的事件 */
-(void)addgesture:(UILongPressGestureRecognizer*) recognizer{
    [self becomeFirstResponder];
    UIMenuController *menu = [UIMenuController sharedMenuController];
    [menu setTargetRect:self.frame inView:self.superview];
    [menu setMenuVisible:YES animated:YES];
}

再开启一下其他必要的功能,如开启第一响应者等

/* 3.再开启一下其他必要的功能,如开启第一响应者等 */
// default is NO
- (BOOL)canBecomeFirstResponder{
    return YES;
}
//"反馈"关心的功能
-(BOOL)canPerformAction:(SEL)action withSender:(id)sender{
    return (action == @selector(copy:));
}
//针对于copy的实现
-(void)copy:(id)sender{
    UIPasteboard *pboard = [UIPasteboard generalPasteboard];
    pboard.string = self.text;
}

绑定事件,主要看你的label实在Xib或者Storyboard画的还是用代码创建的

如果用代码创建的话

//如果用代码创建的话,绑定事件
- (id)initWithFrame:(CGRect)frame{
    self = [super initWithFrame:frame];
    if (self) {
        [self addTouch];
    }
    return self;
}
如果在xib或者storyboard文件中创建的话

/* 如果再xib或者storyboard文件中画的话: */
-(void)awakeFromNib{
    [super awakeFromNib];
    [self addTouch];
}
封装完成之后直接调用就可以了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值