IOS 访问系统粘贴板
粘贴板提供了一种核心OS特性,用于跨应用程序共享数据。用户可以跨应用来复制粘贴,也可以设置只在本应用中复制粘贴用来保护隐私。
UIPasteboard类允许访问共享的设备粘贴板以及内容,下面代码返回一般的系统粘贴板,它适合大多数一般的复制粘贴应用。
UIPasteboard *pd = [UIPasteboard generalPasteboard];
使用pasteboardWithUniqueName创建特定于应用程序的粘贴板,只有知道并且使用粘贴板名称键的应用程序能能够使用相同的粘贴板。
使用pasteboardWithName:create:创建自定义的粘贴板,他返回一个具有指定名称的粘贴板。为粘贴板使用反向DNS命名方法。这种类型的粘贴板可以超越单个应用程序的运行而持续存在;可以再创建后把持久属性设置为YES。可以使用removePasteboardWithName:销毁粘贴板,并释放被他使用的资源。
可以使用UTI指定粘贴板存储的是那种数据。
可以给粘贴板发送pasteboardType消息,查询粘贴板的可用类型,这将返回一个数组:
NSArray *types = [pb pasteboardTypes];
可以在粘贴板上设置数据,并通过传递一个NSData对象和一个描述数据所顺应的类型的UTI
[[UIPasteboard generalPasteboard] setData:theData forPasteboardType:theUTI];
其实在程序开发中,很少用到粘贴板开发,主要是为用户简化操作,同时又准备好打算与其他应用程序共享的内容。
下面的例子主要是显示当在textView中输入内容,粘贴板自动把输入内容放入粘贴板,可以通过textview的delegate方法(textViewDidChange:)来完成
- (void) updatePasteboard
{
if (enableWatcher)
[UIPasteboard generalPasteboard].string = textView.text;
} - (void)textViewDidChange:(UITextView *)textView
{
[self updatePasteboard];
} - (void) toggle: (UIBarButtonItem *) bbi
{
enableWatcher = !enableWatcher;
bbi.title = enableWatcher ? @"Stop Watching" : @"Watch";
} - (void) loadView
{
[super loadView];
self.view.backgroundColor = [UIColor whiteColor]; textView = [[UITextView alloc] initWithFrame:CGRectZero];
textView.delegate = self;
[self updatePasteboard];
[self.view addSubview:textView];
IOS 访问系统粘贴板的更多相关文章
- Intellij IDE使用 ideavim,不能复制文档到系统粘贴板
vim的yank命令默认不会复制到系统粘贴板,而是粘贴到寄存器.你可以使用* 或 +寄存器来访问系统粘贴板. 在~/.ideavimrc (如果不存在就创建) 中添加下列选项 set clipboar ...
- Ubuntu Vim 复制到系统粘贴板
/************************************************************************* * Ubuntu Vim 复制到系统粘贴板 * 说 ...
- vim中使用系统粘贴板
在vim中如果想使用系统粘贴板,也就是说,如果你在其他程序中复制内容,那么使用shift+insert组合键就可以粘贴进来. 需要说明的是,vim中的粘贴板有很多,你可以输入 :reg来进行查看.而我 ...
- 怎样使用js将文本复制到系统粘贴板中
需要使用到三个document方法: 1. document.execCommand(); 执行某个命令 2. document.queryCommandSupported(); 检测浏览器是否支持某 ...
- 用js实现复制内容到操作系统粘贴板(兼容IE、谷歌、火狐等浏览器)
一.如果只考虑IE浏览器,可以直接用原声js实现 if(window.clipboardData){ //清空操作系统粘贴板 window.clipboardData.clearData(); //将 ...
- IOS --关于粘贴板 ,剪切板 ,UILabel的复制
在iOS中下面三个控件,自身就有复制-粘贴的功能: 1.UITextView 2.UITextField 3.UIWebView UIKit framework提供了几个类和协议方便我们在自己的应用程 ...
- iOS开发--系统通讯录的访问与添加联系人
公司项目有访问通讯录的需求,所以开始了探索之路.从开始的一无所知,到知识的渐渐清晰.这一切要感谢广大无私分享的 “coder”,注:我是尊称的语气! 苹果提供了访问系统通讯录的框架,以便开发者对系统通 ...
- mac常用快捷键,Mac文件重命名快捷键,Mac OS快速访问系统根目录, MacOS 10.11重要数据的存储位置大全
command+r,相当于F5,刷新页面 command+F5,启动voiceover command+q 关闭当前程序 在Finder中command+/ 打开底部状态栏,可以查看剩余磁盘空间大小 ...
- BX2001: IE 支持使用 window.clipboardData 访问系统剪贴板,Chrome 和 Safari 中存在类似的 Clipboard 对象但尚未实现,Firefox 和 Opera 不支持这类对象
http://www.w3help.org/zh-cn/causes/BX2001 标准参考 无 问题描述 IE 支持使用 window.clipboardData 对象内的一系列方法访问系统剪贴板: ...
随机推荐
- iOS集成微信支付
微信支付的开发 前言:之前听说过微信支付有很多坑,其实没有想象的那么坑,整体感觉很容易上手,按照它的流程来不会有错!PS:官方的流程看的TMD烦,好啦,废话有点多,进入开发.(ps:每个微信的版本一直 ...
- jquery.session.js使用
// jquery.session.js 简单使用方法 添加数据 $.session.set('key', 'value') 删除数据 $.session.remove('key'); 获 ...
- mysql优化(3) 集群配置
两台服务器 192.168.187.131 192.168.187.132 1.主从配置 131为主 132为从 在131下 vim /etc/my.cnf [mysqld] datadir=/var ...
- WARNING [Project: :app] To shrink resources you must also enable ProGuard
新版本的Android Gradle plugin中,对于resource有了更加一步的管理,可以把unused resource移除,不仅是自己工程,并且library里面也可以没有用到的,也可以移 ...
- Linux下安装Wireshark
Linux下安装Wireshark wireshark依赖于libpcap,所以如果系统中未安装libpcap,也要将其一并安装 一.下载源码 源码文件 wireshark-x.x.x.tar.gz ...
- MySQL存储过程(转载)
转自:http://www.blogjava.net/sxyx2008/archive/2009/11/24/303497.html 1.1 CREATE PROCEDURE (创 ...
- uva 10972 RevolC FaeLoN cdoj 方老师和农场
//自己写的第一发tarjan 解:先进行双连通分解并缩点,分解后一定是一颗树,设叶节点个数为n那么答案就是(n+1)/2 关于双连通分量求解:在跑tarjan时判断每个点连向父节点的边是否是桥,如果 ...
- aix rksh 执行CLI命令行限制
su padmin -C "lsdev -dev hdisk9 -attr| grep unique_id"rksh: lsdev: 0403-006 Execute permis ...
- docker制作node程序镜像:
准备: 需要5个文件 新建一个docker文件夹 1 .ignore git忽略文件用的 2 pakage.json 安装NODE程序的 也可以直接拷贝进 docker文件加 3 node环境 lin ...
- Tkinter类之窗口部件类
Tkinter类之窗口部件类 Tkinter支持15个核心的窗口部件,这个15个核心窗口部件类列表如下:窗口部件及说明:Button:一个简单的按钮,用来执行一个命令或别的操作.Canvas:组织图形 ...