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

系统剪贴板的直接调用

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

iOS-UIPasteboard的使用的更多相关文章

  1. iOS - UIPasteboard

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

  2. iOS开发系列--App扩展开发

    概述 从iOS 8 开始Apple引入了扩展(Extension)用于增强系统应用服务和应用之间的交互.它的出现让自定义键盘.系统分享集成等这些依靠系统服务的开发变成了可能.WWDC 2016上众多更 ...

  3. iOS 开发总结(上)

    来源:蝴蝶之梦天使 链接:http://www.jianshu.com/p/d333cf6ae4b0 在iOS开发中经常需要使用的或不常用的知识点的总结,几年的收藏和积累(踩过的坑). 一. iPho ...

  4. iOS开发零碎知识点

    记录一些常用和不常用的iOS知识点,防止遗忘丢失.(来源为收集自己项目中用到的或者整理看到博客中的知识点),如有错误,欢迎大家批评指正:如有好的知识点,也欢迎大家联系我,添加上去.谢谢! 一.调用代码 ...

  5. iOS 剪贴板基本知识

    在iOS 中下面三个控件,自身就有复制-粘贴功能 1.UITextView 2.UITextField 3.UIWebView UIKit framework提供了几个类和协议方便我们在自己的应用程序 ...

  6. 【转】iOS设备的UDID是什么?苹果为什么拒绝获取iOS设备UDID的应用?如何替代UDID?

    本文讲诉的主要是为什么苹果2011年8月发布iOS 5后就开始拒绝App获取设备的UDID以及UDID替补方案,特别提醒开发者苹果App Store禁止访问UDID的应用上架(相关推荐:APP被苹果A ...

  7. iOS 10.0 更新点(开发者视角)

    html, body {overflow-x: initial !important;}html { font-size: 14px; } body { margin: 0px; padding: 0 ...

  8. IOS MenuController初步了解

    IOS MenuController初步了解 默认情况下有以下控件已经支持MenuController. UITextField UITextView UIWebView 让其他控件也支持MenuCo ...

  9. ios开发 <AppName>-Prefix.pch文件的用法详解

    我们知道,每新建立一个工程,比如说HelloWord,在分类SupportingFiles里都会有一个以工程名开头-Prefix.pch结尾的文件,如HelloWord-Prefix.pch.对于这个 ...

  10. iOS应用程序间共享数据

    我们知道iOS由于沙盒的存在,应用程序不能越过自己的区域去访问别的存储空间的内容,不过可能有许多场景我们需要在应用程序之间共享数据,比如多个应用共用用户名密码进行登录等.虽然我们不能直接通过文件系统来 ...

随机推荐

  1. python - 使用psutils

    oshelper.py #encoding=utf-8 import psutil import datetime #查看cpu的信息 print u"CPU 个数 %s"%psu ...

  2. java对接微信小程序

    https://www.cnblogs.com/lyn20141231/p/11210372.html https://blog.csdn.net/sinat_29039125/article/det ...

  3. 1045 Favorite Color Stripe (30)

    Eva is trying to make her own color stripe out of a given one. She would like to keep only her favor ...

  4. Linux 修改时区的办法

    Linux修改时区的正确方法 CentOS和Ubuntu的时区文件是/etc/localtime,但是在CentOS7以后localtime以及变成了一个链接文件 [root@centos7 ~]# ...

  5. 使用 WebRTC 构建简单的前端视频通讯

    在传统的 Web 应用中,浏览器与浏览器之间是无法直接相互通信的,必须借助服务器的帮助,但是随着 WebRTC 在各大浏览器中的普及,这一现状得到了改变. WebRTC(Web Real-Time C ...

  6. 利用原生JS实时监听input框输入值

    传送门https://www.cnblogs.com/lantinggumo/p/7636715.html 传送门https://www.cnblogs.com/nailc/p/8572226.htm ...

  7. 《sicp》八皇后谜题

    <sicp>八皇后谜题 书中练习2.42.八皇后谜题问的是如何将八个皇后摆在国际象棋棋盘上,使得任意一个皇后都不能攻击另一个皇后(也就是说任意两个皇后都不能在同一行,同一列和同一对角线上) ...

  8. C#中使用typeof关键字和GetType()获取类的内部结构(反射机制)

    一.问题描述 java有反射机制,C#也有反射机制,在C#中typeof关键字用于获取类型的System.Type对象,该对象的GetMethods()方法可以得到类型中定义的方法对象的计集合,调用方 ...

  9. OpenJudge计算概论-奇偶排序

    /*==============================================总时间限制: 1000ms 内存限制: 65536kB描述 输入十个整数,将十个整数按升序排列输出,并且 ...

  10. fork 可能导致subprocess崩溃

    https://docs.python.org/zh-cn/3/library/multiprocessing.html 在 3.8 版更改: 对于 macOS,spawn 启动方式是默认方式. 因为 ...