0

我希望NSPasteboard.generalPasteboard()暂时切换到由我的应用生成的自定义NSPasteboard.pasteboardWithUniqueName()

因此,当用户在切换粘贴板时按下 Cmd+C/Cmd+V 时,将使用我的应用程序的粘贴板而不是一般的粘贴板。

有没有办法做到这一点?

4

2 回答 2

1

不,没有办法做到这一点。

如果您只想更改您自己的应用程序中的行为,您可以添加一个类别/扩展来NSPasteboard添加一个返回通用粘贴板或应用程序私有粘贴板的方法。这至少将逻辑隔离到一个地方。在您的代码中的其他任何地方,您都将使用自定义方法而不是+generalPasteboard.

如果您也想改变其他应用程序的行为,那么您就不走运了。你想要达到的更高层次的目标是什么?为什么要更改使用的粘贴板应用程序?如果您对此进行解释,也许还有另一种方法可以实现该目标。

于 2015-02-28T19:17:30.123 回答
0

是的,有可能这样做。您需要创建自己的单例,例如继承自 UIPasteboard 的 customPasteboard,然后使用 swizzling generalPasteboard 您可以返回自己的单例。请记住,从 iOS 开始,命名粘贴板的“persist”属性设置为 NO,这与一般粘贴板不同,每个会话都保存在内存中。

于 2019-10-15T11:13:48.160 回答