以下代码在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
项目,但没有成功。
有人知道如何解决此问题吗?
答案 0 :(得分:1)
作为临时的解决方法,在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)
}
答案 1 :(得分:0)
此问题似乎已在macOS 10.14.4中修复