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 对象内的一系列方法访问系统剪贴板: ...
随机推荐
- 【.Net】从.NET平台调用Win32 API
小序 Win32 API可以直接控制Microsoft Windows的核心,因为API(Application Programming Interface)本来就是微软留给我们直接控制 ...
- I/O重定向与管道
1.输出重定向 (1)> 覆盖输出 (2)>> 追加输出 (3) set -C: 禁止对已经存在文件使用覆盖重定向: 强制覆盖输出,则使用 >| set +C: 关闭上述功 ...
- HDU 1021 - Fibonacci Again
找规律,分析让 F[N] 每一项对 3 取余的余数: 1,2,0, 2,2,1,0, 1,1,2,0, 2,2,1,0, 1,1,2,0, 2,2,1,0 ......... 显然循环了 #inclu ...
- C++学习之重载运算符1
C++除可重载函数之后,还允许定义已有的运算符,这样通过运算符重载可像处理数据使用它们. 先来个代码 #include<iostream> using namespace std; cla ...
- php中的一些编程例子
#一到一百不能被三整除的数 for($i=1;$i<=100;$i++){ if($i%3 != 0){ $arr[] = $i; }} var_dump($arr); #水仙花数for($i= ...
- golang Aes
package models import ( "bytes" "crypto/aes" "crypto/cipher" "err ...
- 菜鸟的jQuery源码学习笔记(前言)
前言 相信任何一名前端开发人员或者是前端爱好者都对jQuery不陌生.jQuery简单易用,功能强大,特别是拥有良好的浏览器兼容性,大大降低了前端开发的难度,使得前端开发变得“平易近人起来”.自从本人 ...
- PHP面试题之文件目录操作
获取文件后缀,遍历目录层次 /** * 5种方式获取文件后缀名 * 这道题其实就是考函数substr() strrchr() array_pop() strrpos() strpos() strrev ...
- @Html.ActionLink 添加样式 html标签
@Html.ActionLink(item.MessageTitle, "Detail", "News",new { MessageId = item.Mess ...
- HDU4738【杭州网赛、判桥】
刚拿到这道题时挺有思路,无奈平日里只敲过找割顶的代码,判桥的代码当时自己也没仔细敲. 当时一把泪啊,忽然感觉自己的图论才只是刚搞了个起步啊.. 题目有神坑. 就是先判是否连通,不连通直接输出0; ...