这篇咱写写一写在UITableView上实用剪贴板的两种方法;

一:在自定义cell里面使用

其实,在cell的使用跟在label里面的用法基本一样

1.放方法:

- (BOOL)canBecomeFirstResponder{

return YES;

}

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

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

return NO;

}

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

return YES;

}

else if(action == @selector(paste:)){

return NO;

}

else if(action == @selector(select:)){

return NO;

}

else if(action == @selector(selectAll:)){

return NO;

}

else{

return [super canPerformAction:action withSender:sender];

}

}

然后呢,当然就是 实现copy方法拉。。

- (void)copy:(id)sender {

NSLog(@"copy");

UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];

[pasteboard setString:[[self textLabel]text]];

}

不过还有最重要的一步,上此方法,它的意思是用来激发copy菜单哦。

- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated {

[[self delegate] performSelector:@selector(showMenu:)

withObject:self afterDelay:0.9f];

[super setHighlighted:highlighted animated:animated];

}

至于生成菜单,大家应该已经经过上一篇的阅读,已经很熟悉了,看代码:

//显示菜单

- (void)showMenu:(id)cell {

if ([cell isHighlighted]) {

[cell becomeFirstResponder];

UIMenuController * menu = [UIMenuController sharedMenuController];

[menu setTargetRect: [cell frame] inView: [self view]];

[menu setMenuVisible: YES animated: YES];

}

}

OK,剩下的至于如何实用自定义的cell,大家应该已经很熟练了吧,我就不在一一介绍了,自此,第一种使用剪贴板的方法介绍完毕

二:第二种就更简单了,因为(__MAC_NA,__IPHONE_5_0)以后已经放出了3个方法,非常好用,我直接就上方法拉。

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

return YES;

}

-(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{

UITableViewCell *cell = [tableView
cellForRowAtIndexPath:indexPath];

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

[UIPasteboard
generalPasteboard].string = cell.textLabel.text;

}

}

UIPasteboard粘贴板:UITableView复制粘贴功能(二)的更多相关文章

  1. h5复制粘贴板,打开APP功能

    <div class="container"> <img src="../themes/mall/img/i_red_ad4.jpg"> ...

  2. Intellij IDE使用 ideavim,不能复制文档到系统粘贴板

    vim的yank命令默认不会复制到系统粘贴板,而是粘贴到寄存器.你可以使用* 或 +寄存器来访问系统粘贴板. 在~/.ideavimrc (如果不存在就创建) 中添加下列选项 set clipboar ...

  3. IOS 访问系统粘贴板

    粘贴板提供了一种核心OS特性,用于跨应用程序共享数据.用户可以跨应用来复制粘贴,也可以设置只在本应用中复制粘贴用来保护隐私. UIPasteboard类允许访问共享的设备粘贴板以及内容,下面代码返回一 ...

  4. Vim 下的复制/粘贴/剪切/撤销

    一 了解 vim 有 12 个粘贴板,分别是 0.1.2.....9.a.“.+:用 :reg 命令可以查看各个粘贴板里的内容.在 vim 中简单用 y 命令只是复制到 "(双引号)粘贴板里 ...

  5. vi/vim复制粘贴命令

    1. 选定文本块.使用v进入可视模式,移动光标键选定内容. 2.复制的命令是y,即yank(提起) ,常用的命令如下:     y      在使用v模式选定了某一块的时候,复制选定块到缓冲区用:   ...

  6. VIM复制粘贴大全!

    原文地址:http://lsong17.spaces.live.com/blog/cns!556C21919D77FB59!603.entry 内容: 用vim这么久 了,始终也不知道怎么在vim中使 ...

  7. vim的复制粘贴小结

    vim帮助文档里与粘贴板有关的内容如下: vim有12个粘贴板,分别是0.1.2.….9.a.“.+:用:reg命令可以查看各个粘贴板里的内容.在vim中简单用y只是复制到“(双引号)粘贴板里,同样用 ...

  8. vim的复制粘贴小结(转)

    原文地址:http://lsong17.spaces.live.com/blog/cns!556C21919D77FB59!603.entry 内容: 用vim这么久 了,始终也不知道怎么在vim中使 ...

  9. vim中使用系统粘贴板

    在vim中如果想使用系统粘贴板,也就是说,如果你在其他程序中复制内容,那么使用shift+insert组合键就可以粘贴进来. 需要说明的是,vim中的粘贴板有很多,你可以输入 :reg来进行查看.而我 ...

随机推荐

  1. Python 极简教程(八)字符串 str

    由于字符串过于重要,请认真看完并保证所有代码都至少敲过一遍. 对于字符串,前面在数据类型中已经提到过.但是由于字符串类型太过于常用,Python 中提供了非常多的关于字符串的操作.而我们在实际编码过程 ...

  2. .vsdc和.svf用于formal verification tools

    svf:Setup Verification for Formality

  3. ECMall 25个 数据库表 说明文档

    ecm_acategory //文章分类表 字段 类型 Null 默认 注释 cate_id int(10) 否   自增ID号,分类ID号 cate_name varchar(100) 否   分类 ...

  4. 判断Bigdecimal类型是否等于0的方法

    1.我之前用来判断Bigdecimal类型是否等于0的方法 b.equals(BigDecimal.ZERO); 用equals方法和BigDecimal.ZERO进行比较. 2.上面方法存在的问题 ...

  5. 使用docker 搭建基础的 mysql 应用

    mysql server是眼下比較流行的开源数据库server.以下介绍怎样使用docker来做一个mysql数据库服务 从站点直接 pull 一个 mysql 的镜像 core@localhost ...

  6. opencv cvtColor dtype issue(error: (-215) )

    opencv cvtColor dtype issue(error: (-215) ) 更详细的错误信息如下,color.cpp:9710: error: (-215) depth == CV_8U ...

  7. 内存问题检查利器——Purify

    内存问题检查利器——Purify 一.           引言 我们都知道软件的测试(在以产品为主的软件公司中叫做QA—Quality Assessment)占了整个软件工程的30% -50%,但有 ...

  8. 10.2、android输入系统_必备Linux编程知识_双向通信(scoketpair)

    2. 双向通信(socketpair) 输入系统肯定涉及进程通讯:进程A读取/分发输入事件,APP处理输入事件,进程A给APP发送输入事件,APP处理完事件回复信息给进程A,APP关闭的时候也要发信息 ...

  9. P2P平台的"我要借款"功能,是否需要上传借款人的相关资料

     P2P平台的前端系统,一般都会有"我要借款"这个功能.有的平台,非常重视这个功能, 把它作为主要菜单的其中一项.有的把它看得相对次要,放在顶部Top栏中. 毕竟P2P平台,其实主 ...

  10. 【t043】成绩查询

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] 说起测试计算机的软件,排在第一位的就应当是SuperPi 了.它不但能良好的体现机器的整体水平,而且还 ...