14.4.5 粘贴

14.4.5 粘贴

当用户点击选项菜单的粘贴按钮时,UIKit系统会调用响应者的paste(_:)方法,如果是UITextView和UITextField,这些方法由UIKit实现。如果有自定义的控件需要响应粘贴事件,则需要实现这个方法来响应事件。若第一响应者无法响应,这个事件则会进入响应者链进行传递。在这个方法的实现中,可以从粘贴板中读取出应用想要的数据,然后将数据转换为应用所需的类型,最后呈现在视图上或者存储在文件中。一般通过如下5个步骤完成粘贴操作:

1.获取粘贴板。

iOS系统使用的粘贴板通过调用UIPasteboard.general获取。

2.确认粘贴板的数据类型是否是应用可以处理的。

通过contains(pasteboardTypes:)方法,传入应用支持的类型数组,获取是否有支持类型的数据在粘贴板中。或者直接使用UIPasteboard的types属性判断目前粘贴板中的数据类型是否有可以被应用使用的。

3.如果有可以使用的类型,获取对应类型的数据。

如果是非Data类型,使用value(forPasteboardType:)获取数据;如果数据是Data类型,则使用data (forPasteboardType:)方法获取。

4.将获取的数据传入应用中。

5.更新界面或者存储数据。