我们在共享表复制活动中遇到了一个相当奇怪的问题。
我们只是对内容进行了简短的介绍,然后我们提供了指向共享活动的链接,如...
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
}
此外,如果您直接复制/粘贴链接,则效果很好。如果您将共享文本复制为纯文本并粘贴,它也可以正常工作。这使我相信在处理共享文本时这里缺少一些东西。
有人在粘贴中遇到过这个问题吗?是否需要实施一些生命周期/委托来处理共享文本?