粘贴板提供了一种核心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 访问系统粘贴板的更多相关文章

  1. Intellij IDE使用 ideavim,不能复制文档到系统粘贴板

    vim的yank命令默认不会复制到系统粘贴板,而是粘贴到寄存器.你可以使用* 或 +寄存器来访问系统粘贴板. 在~/.ideavimrc (如果不存在就创建) 中添加下列选项 set clipboar ...

  2. Ubuntu Vim 复制到系统粘贴板

    /************************************************************************* * Ubuntu Vim 复制到系统粘贴板 * 说 ...

  3. vim中使用系统粘贴板

    在vim中如果想使用系统粘贴板,也就是说,如果你在其他程序中复制内容,那么使用shift+insert组合键就可以粘贴进来. 需要说明的是,vim中的粘贴板有很多,你可以输入 :reg来进行查看.而我 ...

  4. 怎样使用js将文本复制到系统粘贴板中

    需要使用到三个document方法: 1. document.execCommand(); 执行某个命令 2. document.queryCommandSupported(); 检测浏览器是否支持某 ...

  5. 用js实现复制内容到操作系统粘贴板(兼容IE、谷歌、火狐等浏览器)

    一.如果只考虑IE浏览器,可以直接用原声js实现 if(window.clipboardData){ //清空操作系统粘贴板 window.clipboardData.clearData(); //将 ...

  6. IOS --关于粘贴板 ,剪切板 ,UILabel的复制

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

  7. iOS开发--系统通讯录的访问与添加联系人

    公司项目有访问通讯录的需求,所以开始了探索之路.从开始的一无所知,到知识的渐渐清晰.这一切要感谢广大无私分享的 “coder”,注:我是尊称的语气! 苹果提供了访问系统通讯录的框架,以便开发者对系统通 ...

  8. mac常用快捷键,Mac文件重命名快捷键,Mac OS快速访问系统根目录, MacOS 10.11重要数据的存储位置大全

    command+r,相当于F5,刷新页面 command+F5,启动voiceover command+q 关闭当前程序 在Finder中command+/ 打开底部状态栏,可以查看剩余磁盘空间大小 ...

  9. BX2001: IE 支持使用 window.clipboardData 访问系统剪贴板,Chrome 和 Safari 中存在类似的 Clipboard 对象但尚未实现,Firefox 和 Opera 不支持这类对象

    http://www.w3help.org/zh-cn/causes/BX2001 标准参考 无 问题描述 IE 支持使用 window.clipboardData 对象内的一系列方法访问系统剪贴板: ...

随机推荐

  1. hdu2243考研路茫茫——单词情结

    Problem Description 背单词,始终是复习英语的重要环节.在荒废了3年大学生涯后,Lele也终于要开始背单词了. 一天,Lele在某本单词书上看到了一个根据词根来背单词的方法.比如&q ...

  2. zoj1027 Human Gene Functions

    一道动态规划,两个串进行匹配,不同字母匹配的值不一样,也可以和空格匹配(空格不能与空格匹配),求最大的匹配值. 数据很弱,每个串都在100以内. 定义dp[i][j]为第一个串前i个数和第二个串前j个 ...

  3. 《C++ Primer Plus 6th》读书笔记 - 第十章 对象和类

    1. 过程性编程和面向对象编程 2. 抽象和类 1. 使用类对象的程序都可以直接访问公有部分,但只能通过公有成员函数(或友元函数)来访问对象的私有成员 2. 可以在类声明之外定义成员函数,并使其成为内 ...

  4. JavaScript 对象扩展代码

    JavaScript 扩展代码 更具需要写的几个扩展. 扩展核心自执行函数 Object.extend /** * 对象扩展体 参数是 {属性|方法:属性值|方法体} * 只执行实现 * * 实例对基 ...

  5. Oracle EBS-SQL (BOM-11):检查无BOM的装配件.sql

    select     msi.segment1, msi.description, . msi.item_type, msi.inventory_item_status_code 状态 from    ...

  6. 在ubuntu10.0.4下更新git

    今天想到要在ubuntu10.0.4下下载android的源码学习一下.源码下载用到了git.以前安装过git以为应该没什么问题的,没想到报了 “fatal: git 1.7.2 or later r ...

  7. SSH25个命令 + 深入SSH端口转发细节

    OpenSSH是SSH连接工具的免费版本.telnet,rlogin和ftp用户可能还没意识到他们在互联网上传输的密码是未加密的,但SSH是加密的,OpenSSH加密所有通信(包括密码),有效消除了窃 ...

  8. 在Word中为标题样式添加自动编号功能

    原文地址:http://blog.chinaunix.net/uid-16685753-id-2738270.html 摘要: 本文可以帮助你在Office 2007中为Word标题样式添加和设置自动 ...

  9. MySQL优化GROUP BY-松散索引扫描与紧凑索引扫描

    满足GROUP BY子句的最一般的方法是扫描整个表并创建一个新的临时表,表中每个组的所有行应为连续的,然后使用该临时表来找到组并应用累积函数(如果有).在某些情况中,MySQL能够做得更好,即通过索引 ...

  10. #include <locale.h> #include <locale>

    C C++ C 1 setlocale setlocale,本函数用来配置地域的信息,设置当前程序使用的本地化信息. #include <stdio.h> #include <std ...