CopyLabel:iOS擁有復(fù)制功能的Label

使用方法:

使用方法相當簡單,和系統(tǒng)的UIlabel使用方法一樣,只需要設(shè)置相應(yīng)位置即可。

.m中具體代碼:

#import "CopyLabel.h"

@implementation CopyLabel

-(BOOL)canBecomeFirstResponder {

return YES;

}

// 可以響應(yīng)的方法

-(BOOL)canPerformAction:(SEL)action withSender:(id)sender {

return (action == @selector(copy:));

}

//針對于響應(yīng)方法的實現(xiàn)

-(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:@"復(fù)制"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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容