CopyLabel:iOS拥有复制功能的Label

使用方法:

使用方法相当简单,和系统的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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容