0

我们在共享表复制活动中遇到了一个相当奇怪的问题。

我们只是对内容进行了简短的介绍,然后我们提供了指向共享活动的链接,如...

    guard let viewController = vc, let sourceView = viewController.view, let url = URL(string: link) else { 
        return
    }

    let activityViewController = UIActivityViewController(activityItems: [text, url], applicationActivities: nil)

    viewController.present(activityViewController, animated: true, completion: nil)
    activityViewController.popoverPresentationController?.sourceView = sourceView

除了在我们的内部聊天中,这工作得很好。在我们的聊天文本视图中,文本简介通过,但链接没有按预期显示在文本旁边。

有问题的文本视图是一个SlackTextViewController(我知道现在已弃用,我们已经使用了一段时间)。我找不到任何表明他们正在以任何方式清理输入或删除链接的文档,但它很可能与该组件有关。我尝试了一个简单的实现textView:shouldChangeTextInRange来打印 textView 接收到的文本,果然,那里没有链接。

只是为了完整起见,这就是它的样子。

override func textView(_: UITextView, shouldChangeTextIn _: NSRange, replacementText text: String) -> Bool {
    print(text)
    return true
}

此外,如果您直接复制/粘贴链接,则效果很好。如果您将共享文本复制为纯文本并粘贴,它也可以正常工作。这使我相信在处理共享文本时这里缺少一些东西。

有人在粘贴中遇到过这个问题吗?是否需要实施一些生命周期/委托来处理共享文本?

4

1 回答 1

0

希望这对其他人有所帮助 - 这里的问题是 slacktextviewcontroller 覆盖了默认的粘贴行为,这会导致共享副本出现一些问题,它粘贴文本,而不是复制的URL

于 2019-03-13T19:05:10.583 回答