iOS筆記之_UILabel長按復制

UILabel長按復制

mLabel.m

- (instancetype)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        self.userInteractionEnabled = YES;
        UILongPressGestureRecognizer *longPressGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressCellHandle:)];
                [self addGestureRecognizer:longPressGesture];
    }
    return self;
}


-(void)longPressCellHandle:(UILongPressGestureRecognizer *)gesture
{
    [self becomeFirstResponder];
    
    UIMenuController *menuController = [UIMenuController sharedMenuController];
    
    UIMenuItem *copyItem = [[UIMenuItem alloc] initWithTitle:@"復制" action:@selector(menuCopyBtnPressed:)];
    
    menuController.menuItems = @[copyItem];
    
    [menuController setTargetRect:gesture.view.frame inView:gesture.view.superview];
    
    [menuController setMenuVisible:YES animated:YES];
    
    [UIMenuController sharedMenuController].menuItems=nil;
    
}


-(void)menuCopyBtnPressed:(UIMenuItem *)menuItem
{
    [UIPasteboard generalPasteboard].string = self.text;
    
}


-(BOOL)canBecomeFirstResponder

{
    return YES;
}


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

{
    if (action == @selector(menuCopyBtnPressed:)) {
    
            return YES;
    }
    return NO;
}
ViewController.m

#import "ViewController.h"
#import "mLabel.h"

- (void)viewDidLoad {
   [super viewDidLoad];
   MLabel *label = [[MLabel alloc] initWithFrame:CGRectMake(0, 100, self.view.bounds.size.width, 50)];
   label.textAlignment = NSTextAlignmentCenter;
   label.text = @"長按這里可以復制這里的文字";
   label.textColor = [UIColor grayColor];
   label.backgroundColor = [UIColor yellowColor];
   [self.view addSubview:label];
}
就醬...
Paste_Image.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容