美文网首页
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