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

系统剪贴板的直接调用

其实整个过程非常的简单,我就用我写的一个自定义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遍腾空出世了

UIPasteboard的使用的更多相关文章

  1. UIMenuController/UIPasteboard(2) UITableView上实用剪贴板

    在UITableView上实用剪贴板有两种方法: 一.在tableView的代理方法中直接有三个有关剪贴板的方法. //某行是否允许show菜单 -(BOOL)tableView:(UITableVi ...

  2. UIMenuController/UIPasteboard(1) 制作一个可以粘贴复制的Label

    效果如下:   苹果只放出来了 UITextView,UITextField,webView三个控件的剪贴板,所以我们要自定义可以复制粘贴的控件,首先需要打开UIResponder的两个方法: - ( ...

  3. UIMenuController搭配UIPasteboard,执行拷贝-黏贴操作-b

    一.基本概念 UIKit框架中,可以直接执行拷贝黏贴操作的有:UITextView.UITextField和UIWebView,其他控件需要实现相关方法. 关于UIPasteboard ·黏贴板是ap ...

  4. UIPasteboard 粘贴板

    UIPasteboard *pasteboard = pasteboard.string = self.label.text;

  5. UIMenuController,UIPasteboard:复制,粘贴详细解释

    首先,这四个地图.我想实现的功能.[一张照片讲一个复制到另一UIimageView上] 实现代码例如以下: -(IBAction)panGestureTop:(UILongPressGestureRe ...

  6. Swift - UIPasteboard剪贴板的使用详解(复制、粘贴文字和图片)

    转载自:http://www.hangge.com/blog/cache/detail_1085.html UITextField.UITextView组件系统原生就支持文字的复制,但有时我们需要让其 ...

  7. iOS - UIPasteboard

    前言 NS_CLASS_AVAILABLE_IOS(3_0) __TVOS_PROHIBITED __WATCHOS_PROHIBITED @interface UIPasteboard : NSOb ...

  8. 系统剪切板的使用UIPasteboard

    最近发现支付宝和淘宝使用吱口令和淘口令的功能,就一直想怎么实现的,觉得应该是使用了系统的剪切板,然后查阅了资料做下笔记! 系统的剪切板主要是使用了UIPasteboard这个类. UIPasteboa ...

  9. UIPasteboard

    1.UIPasteboard 简介 顾名思义,UIPasteboard 是剪切板功能,因为 iOS 的原生控件 UITextField.UITextView.UIWebView, 我们在使用时如果长按 ...

随机推荐

  1. iOS开发者必备的10款工具

    当前iOS和Android两大移动操作系统“二足鼎立”,几乎覆盖了市面上大部分的智能手机.相比Android,iOS开发适配更简单,且随着各种实用工具和Swift语言的出现,iOS开发门槛地降低,开发 ...

  2. spring mvc4.1.6 + spring4.1.6 + hibernate4.3.11 + mysql5.5.25 开发环境搭建及相关说明

    一.准备工作 开始之前,先参考上一篇: struts2.3.24 + spring4.1.6 + hibernate4.3.11 + mysql5.5.25 开发环境搭建及相关说明 struts2.3 ...

  3. android中实现view可以滑动的六种方法续篇(一)

    承接上一篇,如果你没有读过前四章方法,可以点击下面的链接: http://www.cnblogs.com/fuly550871915/p/4985053.html 下面开始讲第五中方法. 五.利用Sc ...

  4. Erlang数据类型的表示和实现(4)——boxed 对象

    Boxed 对象 Boxed 对象是比较复杂的对象,在 Erlang 中主标签为 10 的 Eterm 表示一个对 boxed 对象的引用.这个 Eterm 除去标签之后剩下的实际上是一个指针,指向具 ...

  5. 传递给后台的Json数据解析

    后台代码如下: public void ProcessRequest(HttpContext context) { context.Response.ContentType = "appli ...

  6. VMware 12Pro 安装MACOS 10.10

    前言 最近帮人MacBook PRO重新安装了下10.10,在加上用了IP6,对苹果系统很有好感,所以想自己装个mac系统玩一下.虽然有了surface pro3 但是看了时间久了厌了,好想买个MAC ...

  7. ZBrush中的SubTool工具该怎样使用

    今天的ZBrush教程中将为大家引入一个新的工具SubTool,使用SubTool您可以添加PolyMesh至当前编辑的模型中,它的出现改变了过去ZBrush不能同时编辑多个模型的弊端. 查看详细的视 ...

  8. Head First HTML5 Programming 读书笔记

    1:HTML5引入了简单化的标记,新的语义和媒体元素,另外要依赖于一组支持web应用的js库. 2:关于js 对象是属性的结合 window对象是全局变量. document对象是window的一个属 ...

  9. 如何解决inline-block元素的空白间距

    早上在博客中有人提了这样一个问题:“li元素inline-block横向排列,出现了未知间隙”,我相信大家在写页面的时候都遇到过这样的情况吧. 我一般遇到这情况都会把li浮动起来,这样就没有间隙.但是 ...

  10. UVALive 6269 Digital Clock --枚举,模拟

    题意:说不清楚,自己看吧,太恶心. 这题真是SB了,当时看了一下以为乱搞就好了,于是开始动手拍,结果拍了好几个小时都没拍出来,而且越想越想不通,直接把自己绕进去了,结果gg了. 总结:甭管什么题,想清 ...