你的位置:首页 > 软件开发 > 操作系统 > iOS 拷贝、剪切和粘贴理论基础(转)

iOS 拷贝、剪切和粘贴理论基础(转)

发布时间:2015-10-12 11:00:04
简介在iPhone OS 3.0之后,用户可以在一个应用程序上拷贝文本、图像、或其它数据,然后粘贴到当前或其它应用程序的不同位置上。比如,您可以从某个电子邮件中拷贝一个地址,然后粘贴到Contacts程序的地址域中。目前,UIKit框架在UITextView、UITextFiel ...

iOS 拷贝、剪切和粘贴理论基础(转)

简介

在iPhone OS 3.0之后,用户可以在一个应用程序上拷贝文本、图像、或其它数据,然后粘贴到当前或其它应用程序的不同位置上。比如,您可以从某个电子邮件中拷贝一个地址,然后粘贴到Contacts程序的地址域中。目前,UIKit框架UITextViewUITextField、和UIWebView类中实现了拷贝-剪切-粘贴支持。如果您希望在自己的应用程序中得到这个行为,可以使用这些类的对象,或者自行实现。

但在iOS7.0后,UIPasteboard由共享变为沙盒化了UIPasteboard本无问题,但是开发者开始使用它来存储标识符,和其他的相关app分享这些标识符的时候问题就出现了。有一个使用这种把戏的就是OpenUDID。在iOS7后,使用 +[UIPasteboard pasteboardWithName:create:]和 +[UIPasteboard pasteboardWithUniqueName]创建剪贴板,而且只对相同的app group可见,这样就让OpenUDID不那么有用了。

本文的下面部分将描述UIKit中用于拷贝、剪切、和粘贴操作的编程接口,并解释其用法。

拷贝、剪切、和粘贴操作

在iPhone OS 3.0之后,用户可以在一个应用程序上拷贝文本、图像、或其它数据,然后粘贴到当前或其它应用程序的不同位置上。比如,您可以从某个电子邮件中拷贝一个地址,然后粘贴到Contacts程序的地址域中。目前,UIKit框架UITextViewUITextField、和UIWebView类中实现了拷贝-剪切-粘贴支持。如果您希望在自己的应用程序中得到这个行为,可以使用这些类的对象,或者自行实现。

本文的下面部分将描述UIKit中用于拷贝、剪切、和粘贴操作的编程接口,并解释其用法。

请注意:与拷贝和粘贴操作相关的使用指南,请参见iPhone人机界面指南文档中的“支持拷贝和粘贴”部分。

一般情况下,为了最大化潜在的共享可能性,粘贴板数据项应该包括尽可能多的表示。

粘贴板的读取程序必须找到最适合自身能力(如果有的话)的数据类型。通常情况下,这意味着选择内涵最丰富的可用类型。举例来说,一个文本编辑器可能为被拷贝的数据提供HTML(富文本)和纯文本表示,支持富文本的应用程序应该选择HTML表示,而只支持纯文本的应用程序则应该选择纯文本的表示。

变化记数

变化记数是每个粘贴板都有的变量,它随着每次粘贴板内容的变化而递增—特别是发生增加、修改、或移除数据项的时候。应用程序可以通过考察变化记数(通过changeCount属性)来确定粘贴板的当前数据是否和最后一次取得的数据相同。每次变化记数递增时,粘贴板都会向对此感兴趣的观察者发送通告。

选择和菜单管理

在拷贝或剪切视图中的某些内容之前,必须首先选择“某些内容”。它可能是一些文本、一个图像、一个URL、一种颜色、或者其它类型的数据,包括定制对象。为了在定制视图中实现拷贝-和-粘贴行为,您必须自行管理该视图中对象的选择。如果用户通过特定的触摸手势(比如双击)来选择视图中的对象,您就必须处理该事件,即在程序内部记录该选择(同时取消之前的选择),可能还要在视图中指示新的选择。如果用户可以在视图中选择多个对象,然后进行拷贝-剪切-粘贴操作,您就必须实现多选的行为。

请注意:触摸事件及其处理技巧在“触摸事件”部分进行讨论。

原标题:iOS 拷贝、剪切和粘贴理论基础(转)

关键词:IOS

IOS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。