Swizzling Copy method of UIResponder



我正在刷新UIResponder的Copy:和Paste:方法。我必须把复制的内容写在一个私人的粘贴板上。

- (void)copyToPrivatePasteboard:(id)sender
{
    UIPasteboard *privatePasteboard = [self getPrivatePasteboard];
    [privatePasteboard setString:@""];//How to get the copied string to store in pasteboard.
}

我怎样才能把复制的字符串写在粘贴板上。我得到的参数类型为id。如果我把它转换成NSString,它就不合适了,因为是发送方在调用这个方法(UIMenuController)。

如果我理解你是正确的,你想用你Q中的代码替换UIResponder's -copy:。(对-paste:也做同样的事情。)

这是你的问题的答案。但最后有一些评论:

  • 如果你快速使用一种方法,self就会指向消息的接收者。在您的情况下,它是UIResponder的实例。因此,您必须使用self获取数据。你怎么能做到这一点?一般情况下不会,因为:

  • -copy:可以包含多个"将我的数据放到粘贴板上"。这是一种方法。那里的代码可以处理其他你不知道的事情。所以你不能那么简单地替代它。

  • 因此,-copy:通常在子类中被覆盖。(我认为,它在UIResponder实现中什么都不做。)在UIResponder中滑动-copy:不会改变子类实例中的任何行为。你熟悉应答器链的概念吗?

也许有更好的方法来实现你的目标:

  • 如果你真的想喝水,因为它很酷,我更喜欢+generalPasteboardUIPasteboard)。

  • 但也许你应该用更多的细节来描述你的最终目标。可能有一种完全不同的方式来达到它。

相关内容

  • 没有找到相关文章

最新更新