如何从自定义macOS文本共享扩展中获取文本?



所以,我正在制作一个macOS应用程序,该应用程序具有接受文本的共享扩展。我在iOS上制作了相同的应用程序,其中此代码

func fetchAndSetContentFromContext() {
guard let extensionItems = extensionContext?.inputItems as? [NSExtensionItem] else {
return
}
for extensionItem in extensionItems {
if let itemProviders = extensionItem.attachments as? [NSItemProvider] {
for itemProvider in itemProviders {
if itemProvider.hasItemConformingToTypeIdentifier(kUTTypeText as String) {
itemProvider.loadItem(forTypeIdentifier: kUTTypeText as String, options: nil, completionHandler: { text, error in
DispatchQueue.main.async {
self.titleField.text = (text as! String)
}
})
}
}
}
}
}

返回用户选择的文本,但由于某种原因它在 Mac 上不起作用。我该怎么办?

我在使用Mac Catalyst应用程序时遇到了同样的问题,并意识到共享文本包含在NSExtensionItem.attributedContentText中。

当我的共享扩展检索NSExtensionItem详细信息时,如果没有任何NSItemProvider存在,我会检查上述变量。

没有理由为什么此代码无法在macOS上运行,因此问题出在此代码中,我认为有两种可能的情况可以说明为什么会发生:

  1. 你的信息列表不一样
  2. macOS 上的源应用程序发送内容的方式
  3. 与 iOS 上的源应用程序发送内容的方式不同。

相关内容

  • 没有找到相关文章

最新更新