iOS-UIPasteboard的使用
剪贴板的使用以及自定义剪贴板。
系统剪贴板的直接调用
其实整个过程非常的简单,我就用我写的一个自定义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的使用的更多相关文章
- iOS - UIPasteboard
前言 NS_CLASS_AVAILABLE_IOS(3_0) __TVOS_PROHIBITED __WATCHOS_PROHIBITED @interface UIPasteboard : NSOb ...
- iOS开发系列--App扩展开发
概述 从iOS 8 开始Apple引入了扩展(Extension)用于增强系统应用服务和应用之间的交互.它的出现让自定义键盘.系统分享集成等这些依靠系统服务的开发变成了可能.WWDC 2016上众多更 ...
- iOS 开发总结(上)
来源:蝴蝶之梦天使 链接:http://www.jianshu.com/p/d333cf6ae4b0 在iOS开发中经常需要使用的或不常用的知识点的总结,几年的收藏和积累(踩过的坑). 一. iPho ...
- iOS开发零碎知识点
记录一些常用和不常用的iOS知识点,防止遗忘丢失.(来源为收集自己项目中用到的或者整理看到博客中的知识点),如有错误,欢迎大家批评指正:如有好的知识点,也欢迎大家联系我,添加上去.谢谢! 一.调用代码 ...
- iOS 剪贴板基本知识
在iOS 中下面三个控件,自身就有复制-粘贴功能 1.UITextView 2.UITextField 3.UIWebView UIKit framework提供了几个类和协议方便我们在自己的应用程序 ...
- 【转】iOS设备的UDID是什么?苹果为什么拒绝获取iOS设备UDID的应用?如何替代UDID?
本文讲诉的主要是为什么苹果2011年8月发布iOS 5后就开始拒绝App获取设备的UDID以及UDID替补方案,特别提醒开发者苹果App Store禁止访问UDID的应用上架(相关推荐:APP被苹果A ...
- iOS 10.0 更新点(开发者视角)
html, body {overflow-x: initial !important;}html { font-size: 14px; } body { margin: 0px; padding: 0 ...
- IOS MenuController初步了解
IOS MenuController初步了解 默认情况下有以下控件已经支持MenuController. UITextField UITextView UIWebView 让其他控件也支持MenuCo ...
- ios开发 <AppName>-Prefix.pch文件的用法详解
我们知道,每新建立一个工程,比如说HelloWord,在分类SupportingFiles里都会有一个以工程名开头-Prefix.pch结尾的文件,如HelloWord-Prefix.pch.对于这个 ...
- iOS应用程序间共享数据
我们知道iOS由于沙盒的存在,应用程序不能越过自己的区域去访问别的存储空间的内容,不过可能有许多场景我们需要在应用程序之间共享数据,比如多个应用共用用户名密码进行登录等.虽然我们不能直接通过文件系统来 ...
随机推荐
- MongoDB 常用操作命令大全
一.数据库常用命令1.Help查看命令提示 复制代码 代码如下: helpdb.help();db.yourColl.help();db.youColl.find().help();rs.help() ...
- Greenplum Segment 的检测机制
Greenplum集群具有较好的容错性和高可用性,其中一点就体现在segment镜像机制上.接下来本文会简单地阐述segment的作用以及segment镜像机制是如何保证GP高可用的. Segment ...
- SpringCloud分布式系统的演进.
day1 https://github.com/deadzq/product-service 单体服务 https://github.com/deadzq/eurekaserver1 注册中心Eure ...
- ico图标和制作网站(比特虫)
1.怎么找到网站的图标: 网址/favicon.ico 代码引入 <link rel="icon" href="//www.jd.com/favicon.ico&q ...
- C语言十六进制转换成十进制:要从右到左用二进制的每个数去乘以16的相应次方
#include <stdio.h> /* 十六进制转换成十进制:要从右到左用二进制的每个数去乘以16的相应次方: 在16进制中:a(A)=10 b(B)=11 c(C)=12 d(D)= ...
- php grpc请求go,报Yac::get(): Unserialization failed
大概说下yac是个啥东西..看鸟哥的博客 Yac 是为PHP实现的一个基于共享内存, 无锁的内容Cache Yac的两个应用场景:1.让PHP进程之间共享一些简单的数据2.高效地缓存一些页面结果 假设 ...
- 模板 - 数据结构 - 栈/Stack
普通的栈大家都会写,STL的栈据说默认实现方式是deque,没关系反正deque跑得飞快. 这里收录的是一些奇怪的栈,当然双栈实现的队列收录在队列里面. 对顶栈 众所周知,栈可以维护一系列前缀和,包括 ...
- Compiling OpenCV: VTK Not Found on Ubuntu 16.04 LTS
When installing OpenCV: /usr/bin/vtk not found libvtkRenderingPythonTkWidgets.so not found /usr/bin/ ...
- Ubuntu不能连接网络
我的问题是在选择桥接模式下的界面名称选择错误,在windows中我的Intel7260显示未连接,所以更改为Controller之后好用了,折磨了我大半天.
- grep awk 查看nginx日志中所有访问的ip并 去重
111.225.78.157 - - [13/Aug/2019:16:03:08 +0800] "POST /api/login HTTP/1.1" 200 249 "h ...