#import <UIKit/UIKit.h>
@interface NDCopyLabel : UILabel
@property(nonatomic,copy)NSString *obtainText;
@property(nonatomic,copy)NSString *showWord;
@end
#import "NDCopyLabel.h"
@interface NDCopyLabel ()
{
UIAlertView *alert;
}
@end
@implementation NDCopyLabel
- (instancetype)init
{
self = [super init];
if (self) {
[self attachTapHandler];
}
return self;
}
-(BOOL)canBecomeFirstResponder
{
return YES;
}
-(BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
if(action == @selector(copy:)){
return YES;
}else{
return [super canPerformAction:action withSender:sender];
}
}
//针对于响应方法的实现
-(void)copy:(id)sender
{
UIPasteboard *pboard = [UIPasteboard generalPasteboard];
// pboard.string = self.text;
pboard.string = self.obtainText;
alert = [[UIAlertView alloc]initWithTitle:nil message:_showWord delegate:nil cancelButtonTitle:nil otherButtonTitles:nil, nil];
[alert show];
[self performSelector:@selector(delayAlert) withObject:nil afterDelay:2.0];
}
-(void)delayAlert
{
[alert dismissWithClickedButtonIndex:0 animated:YES];
}
-(void)attachTapHandler
{
self.userInteractionEnabled = YES; //用户交互的总开关
UITapGestureRecognizer *touch = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
[self addGestureRecognizer:touch];
}
-(void)handleTap:(UILongPressGestureRecognizer *)tap
{
[self becomeFirstResponder];
UIMenuController * menu = [UIMenuController sharedMenuController];
[menu setTargetRect: [self frame] inView: [self superview]];
[menu setMenuVisible: YES animated: YES];
}
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
// Drawing code
}
*/
@end