0

我正在按照文档中的建议创建一个应用程序 UIPasteboard,并将我的应用程序标识符作为名称(例如 com.example.app.pboard)。

所有的复制和粘贴工作,但该死的东西永远不会消失。每次访问它以将某些内容复制到其上时,我都会将其persistent属性显式设置为 NO,甚至+removePasteboardWithName:每次我的应用程序启动时都会调用 UIPasteboard。

但是每次我看它时,我复制到它的最新内容总是在那里,尽管应用程序重新启动。

是什么赋予了?

4

2 回答 2

1

不知道为什么您尝试的方法不起作用,这里有两个猜测和一个可能的解决方案:

  • 移除粘贴板可能会在退出应用程序时执行,因此在应用程序终止或后台运行之前不会执行?
  • 调用 remove 然后请求项目可能会在同一个“地方”再次重新创建它,因此项目仍然存在。

您也许可以通过items在离开或进入应用程序时将粘贴板设置为 nil 来解决此问题。

于 2011-10-06T05:56:31.503 回答
0

您可以将 UIPasteboard 设置为持久化。根据苹果的文件

setPersistent: 一个布尔值,指示粘贴板是否是持久的。当粘贴板持久存在时,它会在应用程序终止和系统重新启动后继续存在。不持久的应用粘贴板只会持续到拥有(创建)应用退出。系统范围的通用粘贴板是持久的。命名的、特定于应用程序的粘贴板不是持久的。

更新:对于 iOS 10,UIPasteboard 自动设置持久性。

注意 从 iOS 10 开始,系统会自动设置粘贴板持久性。如果您尝试在粘贴板上设置 setPersistent: 属性,Xcode 会发出弃用警告。如本文档概述部分所述,使用共享容器代替命名的持久粘贴板。

于 2017-02-15T07:43:43.603 回答