You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

探究UIPasteboard中setItems(_:options:)方法的options参数

UIPasteboard setItems(_:options:) 选项参数详解

有效选项列表

setItems(_:options:)的options参数接收[UIPasteboard.OptionsKey: Any]类型的字典,可用的键值对如下:

  • localOnly:布尔值,控制剪贴项是否仅本地可用
  • expirationDate:Date类型,设置剪贴项的自动过期时间
  • preferredPasteboard:UIPasteboard实例,指定要操作的目标剪贴板
  • secure:布尔值,标记剪贴项为安全敏感内容(iOS 14+支持)

各选项的行为影响

localOnly

设置为true时,剪贴项仅存储在当前设备,不会通过iCloud剪贴板同步到其他关联设备,适合处理不想跨设备泄露的内容。

expirationDate

自定义剪贴项的存活时长,到期后系统会自动清理这些内容,避免敏感信息长期留存剪贴板。优先级高于系统默认的剪贴板清理规则。

preferredPasteboard

默认操作系统通用剪贴板(UIPasteboard.general),通过这个选项可以指定应用专属剪贴板,实现应用内独立的剪贴板管理,不会和系统通用剪贴板的内容互相干扰。

secure

标记为安全的剪贴项会受到系统额外限制:锁屏状态下不会显示内容预览,其他应用请求访问时可能需要权限验证,适合存储密码、验证码等敏感数据。

代码示例

示例1:本地仅存+定时过期的剪贴项

let generalPasteboard = UIPasteboard.general
// 构造多类型剪贴项(文本+URL)
let items: [[String: Any]] = [
    ["public.plain-text": "仅本地可见的文本"],
    ["public.url": URL(string: "https://example.com")!]
]
// 设置10分钟后过期
let expireTime = Date().addingTimeInterval(600)
let options: [UIPasteboard.OptionsKey: Any] = [
    .localOnly: true,
    .expirationDate: expireTime
]
generalPasteboard.setItems(items, options: options)

示例2:安全的应用专属剪贴项

// 创建应用专属剪贴板
guard let customPasteboard = UIPasteboard(name: "com.myapp.secureClip", create: true) else { return }
let secureItems: [[String: Any]] = [
    ["public.plain-text": "用户临时验证码:654321"]
]
let options: [UIPasteboard.OptionsKey: Any] = [
    .secure: true,
    .preferredPasteboard: customPasteboard
]
customPasteboard.setItems(secureItems, options: options)

文档参考要点

  • 所有选项的定义和版本兼容性,可查看苹果官方文档中UIPasteboard类的OptionsKey枚举部分
  • 注意:secure选项仅支持iOS 14及以上版本;localOnly从iOS 10开始支持;expirationDate设置的时间不能早于当前时间,否则会被忽略

内容的提问来源于stack exchange,提问作者Nube

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 20:03:14