剪贴板的使用以及自定义剪贴板。

系统剪贴板的直接调用

其实整个过程非常的简单,我就用我写的一个自定义UILable来说明调用系统剪贴板。

首先,因为苹果只放出来了 UITextView,UITextField,webView三个控件的剪贴板,所以一般控件的剪贴板都被禁用了,因此,我们首先要做的就是把这属性放出来,其实就是实现三个简单的方法,方法如下:

响应方法

- (BOOL)canBecomeFirstResponder{

returnYES;

}

//"反馈"关心的功能,即放出你需要的功能,比如你要放出copy,你就返回YES,否则返回NO;

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

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

returnYES;

}

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

return YES;

}

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

returnNO;

}

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

returnNO;

}

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

returnNO;

}

return NO;

}

OK,开放控件的剪贴板功能已经放出,剩下的就是实现了

//UILabel默认是不接收事件的,我们需要自己添加touch事件

-(void)attachTapHandler{

self.userInteractionEnabled =YES;  //用户交互的总开关

UITapGestureRecognizer *touch = [[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(handleTap:)];

touch.numberOfTapsRequired =1;

[selfaddGestureRecognizer:touch];

[touch release];

}

响应点击事件

-(void)handleTap:(UIGestureRecognizer*) recognizer{

[selfbecomeFirstResponder];

UIMenuController *menu = [UIMenuControllersharedMenuController];

[menu setTargetRect:self.frameinView:self.superview];

[menu setMenuVisible:YESanimated:YES];

}

OK,此处已经可以点击出COPY菜单了,下面就是对你copy和paste的实现了

//针对于copy的实现

-(void)copy:(id)sender{

UIPasteboard *pboard = [UIPasteboardgeneralPasteboard];

pboard.string = self.text;

}

- (void)paste:(id)sender{

self.textAlignment =UITextAlignmentRight;

UIPasteboard *pboard = [UIPasteboardgeneralPasteboard];

self.text = [NSStringstringWithFormat:@"粘贴内容:%@",pboard.string];

NSLog(@"pboard.string : %@",pboard.string);

}

自此,一个可复制的UILabel遍腾空出世了

最新文章

  1. linux poll函数
  2. HDU 1540 Tunnel Warfare(线段树+区间合并)
  3. 遇上了artTemplate做的东西
  4. poj2485&&poj2395 kruskal
  5. angular2 的依赖注入
  6. 终端I/O之终端选项标志
  7. 《MFC游戏开发》笔记九 游戏中的碰撞判定初步&怪物运动简单AI
  8. HDOJ/HDU 1088 Write a simple HTML Browser(HTML字符串)
  9. Scala:(2)控制结构
  10. Selenium2(webdriver)入门之TestNG的使用
  11. node.js(八) 有趣的东西才开始哦
  12. Web数据库的UI框架 Evolutility
  13. poj 1687 Buggy Sat 简单计算几何
  14. beginBackgroundTaskWithExpirationHandle
  15. 8、单选按钮(JRadioButton)和复选框(JCheckBox)
  16. Python+Requests接口测试教程(2):
  17. 【Storm篇】--Storm基础概念
  18. ios 当margin-left margin-right 超过设备宽度
  19. JustOJ1500: 蛇行矩阵
  20. Win7无法保存共享帐户密码

热门文章

  1. stos指令
  2. AJAX备忘
  3. python时间序列数据的对齐和数据库的分批查询
  4. fuck-KUNLUN昆仑ECRS会员管理系统
  5. 【CSP模拟赛】方程(数学)
  6. ubuntu之路——day11.6 多任务学习
  7. SQL Server 静默安装
  8. CEF3开发者系列之Cookies管理和共享<转>
  9. node依赖包格式区别
  10. https://lug.ustc.edu.cn/wiki/user/boj/linkers-and-loaders