iOS共享表和复制选项粘贴链接在某些情况下不起作用

时间:2019-02-26 17:34:51

标签: ios swift ios-sharesheet slacktextviewcontroller

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

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

    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
}

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

有人在粘贴中遇到此问题吗?是否需要实现一些生命周期/代理来处理共享文本?

1 个答案:

答案 0 :(得分:0)

希望这对其他人有所帮助-此处的问题是slacktextviewcontroller覆盖了默认的粘贴行为,这导致共享副本在粘贴 text 而不粘贴复制的时出现了一些问题网址