以下代码在Mojave中不再起作用:
if let url = URL(string: "https://apple.com"),
let listService = NSSharingService(named: NSSharingService.Name.addToSafariReadingList),
listService.canPerform(withItems: [url])
{
listService.perform(withItems: [url])
}
该代码在应用程序内执行时没有任何错误,但未将任何内容添加到Safari阅读列表中。
许多提供“添加到阅读列表”共享菜单项的非Apple应用程序都遇到相同的问题:Safari阅读列表中没有新内容出现。
在控制台中,我看到了一些错误,表明它与Mojave中引入的AppleEvent沙箱有关。因此,我在Info.plist中添加了一个带有说明的
NSAppleEventsUsageDescription
项目,但没有成功。有谁知道如何解决这个问题?
最佳答案
作为暂时的解决方法,在Apple解决此“问题”之前,您可以使用以下代码:
if #available(macOS 10.14, *) { // Don't use the workaround on earlier macOS versions
let pasteboard = NSPasteboard.init(name: .general)
pasteboard.clearContents()
pasteboard.setString(url.absoluteString, forType: .string)
NSPerformService("Add to Reading List", pasteboard)
}
关于macos - “添加到阅读列表”共享菜单项在Mojave中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52623720/