IOS学习笔记37——UIPasteboard/UIMenuController(三)
来源:互联网 发布:快速启动程序 软件 编辑:程序博客网 时间:2024/05/21 06:37
这篇咱总结总结自定义剪贴板的使用
其实自定义剪贴板也非常简单,无非是放开响应时间,通过UIMenuController自定义剪贴板,然后就是最关键的实现你所用的copy方法拉。
为了方便实用,我给cell添加了长按事件,看代码---
UILongPressGestureRecognizer *recognizer = [[UILongPressGestureRecognizeralloc] initWithTarget:selfaction:@selector(longPress:)];
[cell addGestureRecognizer:recognizer];
好,事件加上了,剩下的点击就是实现自定义剪贴板了,上代码:
- (void)longPress:(UILongPressGestureRecognizer *)recognizer{
if (recognizer.state ==UIGestureRecognizerStateBegan) {
CopyCell *cell = (CopyCell *)recognizer.view;
[cell becomeFirstResponder];
UIMenuItem *flag = [[UIMenuItemalloc] initWithTitle:@"Flag"action:@selector(flag:)];
UIMenuItem *approve = [[UIMenuItemalloc] initWithTitle:@"Approve"action:@selector(approve:)];
UIMenuItem *deny = [[UIMenuItemalloc] initWithTitle:@"Deny"action:@selector(deny:)];
UIMenuController *menu = [UIMenuControllersharedMenuController];
[menu setMenuItems:[NSArrayarrayWithObjects:flag, approve, deny, nil]];
NSLog(@".....%@",NSStringFromCGRect(cell.frame));
[menu setTargetRect:cell.frameinView:cell.superview];
[menu setMenuVisible:YESanimated:YES];
}
}
通过上面这段代码,自定义剪贴板成功搞定,运行,你猛然会发现,操,怎么剪贴板没有出来,我猜你已经想到为什么了,因为- (BOOL)canBecomeFirstResponder{
return YES;
}
这么重要的一句话没有加,OK,下面就是你所要使用的方法了- (void)flag:(id)sender {
NSLog(@"Cell was flagged");
}
- (void)approve:(id)sender {
NSLog(@"Cell was approved");
}
- (void)deny:(id)sender {
NSLog(@"Cell was denied");
}
好,这就是基本的剪贴板的自定义使用了,为了更直观,上述三篇文章均由下面相似的效果图一张- IOS学习笔记37——UIPasteboard/UIMenuController(三)
- IOS学习笔记35——UIPasteboard/UIMenuController(一)
- IOS学习笔记36——UIPasteboard/UIMenuController(二)
- IOS剪贴版UIPasteboard/UIMenuController
- iOS学习笔记9—精通UIPasteboard 粘贴板
- iOS-学习笔记(4)---UIMenuController
- iOS——UIPasteboard 粘贴板
- iOS —— Cell + UIMenuController
- iOS学习笔记-APP共享数据之UIPasteboard使用
- UIMenuController,UIPasteboard:复制,粘贴详解
- UIMenuController UIPasteboard:复制粘贴详解
- iOS学习笔记(三)——iOS系统架构
- iOS学习笔记(三)——iOS系统架构
- iOS学习笔记(三)——iOS系统架构
- UILabel实现剪贴板功能,UIPasteboard、UIMenuController
- UILabel实现剪贴板功能,UIPasteboard、UIMenuController
- IOS 剪切板(UIPasteboard)的使用
- IOS学习笔记——UITableView(三)
- [黑马程序员]_冒泡排序算法
- 常用doc命令大全
- [Python]根据地址从maps文件中找相应的库名
- Androidpn真机测试的问题
- boost::asio async_write也不能保证一次发完所有数据 一
- IOS学习笔记37——UIPasteboard/UIMenuController(三)
- 编程开发应该注意的地方
- struts2的文件下载(1):下载前的授权控制
- 适用于 PHP 开发人员的 Python 基础知识
- MyEclipse自动补全与快捷键设置
- oracle 11g rac 恢复到单实例
- 解决Eclipse一直loading workbench无法启动的问题
- Proftpd+Ldap的安装配置(一)
- 冒险者游戏:比特币中国淘金热蔓延 催生隐秘产业链