美文网首页iOS 细碎天生不是作曲家经验demo
iOS开发使用系统的拷贝剪切功能

iOS开发使用系统的拷贝剪切功能

作者: iOSWoden | 来源:发表于2015-12-15 20:51 被阅读3167次

在iOS开发中,我们可能有需求需要长按某个控件来复制内容。

第一种情况,直接使用tableview的方法来调用系统的复制剪切那个功能。

-(BOOL)tableView:(UITableView *)tableView shouldShowMenuForRowAtIndexPath:(NSIndexPath *)indexPath

{

if (indexPath.section == 0 && indexPath.row !=0) {

return YES;

}

return NO;

}

-(BOOL)tableView:(UITableView *)tableView canPerformAction:(SEL)action forRowAtIndexPath:(NSIndexPath *)indexPath withSender:(id)sender

{

if (action == @selector(copy:)) {

return YES;

}

return NO;

}

-(void)tableView:(UITableView *)tableView performAction:(SEL)action forRowAtIndexPath:(NSIndexPath *)indexPath withSender:(id)sender

{

if (action == @selector(copy:)) {

UsermessageCell *messageCell = (UsermessageCell *)[tableView cellForRowAtIndexPath:indexPath];

[UIPasteboard generalPasteboard].string =messageCell.messageLab.text;

}

}

第二种是自定义(这里主要是改掉系统拷贝的名字为复制)

//在自定义cell中的init方法加入
UILongPressGestureRecognizer *longPressGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressCellHandle:)];

self.longGesture = longPressGesture;

[self addGestureRecognizer:longPressGesture];

//并加上几个方法

-(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.messageLab.text;

}

-(BOOL)canBecomeFirstResponder

{

return YES;

}

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

{

if (action == @selector(menuCopyBtnPressed:)) {

return YES;

}

return NO;

}

相关文章

  • iOS开发使用系统的拷贝剪切功能

    在iOS开发中,我们可能有需求需要长按某个控件来复制内容。 第一种情况,直接使用tableview的方法来调用系统...

  • 深拷贝和浅拷贝

    1: iOS开发 深拷贝与浅拷贝 2: iOS 浅谈:深.浅拷贝与copy.strong 3: iOS开发——深...

  • Mac下拷贝VIM中的数据

    进入Visual Mode并选中需要拷贝的数据 输入命令::w !pbcopy拷贝选中的内容至系统剪切板 拷贝整个...

  • Objective-C中的浅拷贝和深拷贝

    Objective-C中的浅拷贝和深拷贝IOS开发之深拷贝与浅拷贝(mutableCopy与Copy)详解iOS ...

  • UIMenuController使用

    当苹果在 iOS 3.0 中增加了剪切、复制和粘贴功能时,它同时为开发者提供了 UIMenuController ...

  • iOS邮件的实现

    iOS开发使用邮件功能通常有以下两种方式: iOS系统框架提供的两种发送Email的方法:openURL 和 MF...

  • Mac OS键盘常用快捷键

    常用快捷键 剪切、拷贝和粘贴您可以在大多数 app 中使用这些快捷键来剪切、拷贝或粘贴选中的项目。其中包括文本、图...

  • vi中系统剪切板的设置

    vi中系统剪切板的设置 在vi中,如果编译时没有clipboard属性,将vi中的内容拷贝到系统剪切板有些麻烦。可...

  • 安卓开发:使用系统的图片选择和剪切功能

    很多项目中都会使用到选择图片、对图片进行剪切的功能。系统为我们提供了一整套的处理接口,可以不用再自己写这些繁琐的代码了。

  • iOS巧用copy和mutableCopy

    1.导言 1).本文目标:为从事iOS开发的朋友介绍对象拷贝的使用场景 2).目标用户:初级或中级iOS开发者 2...

网友评论

    本文标题:iOS开发使用系统的拷贝剪切功能

    本文链接:https://www.haomeiwen.com/subject/kbbuhttx.html