Пункт меню «Добавить в список чтения» не работает в Мохаве - PullRequest
0 голосов
/ 03 октября 2018

Следующий код больше не работает в Мохаве:

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.

В консоли я увидел несколько ошибок, указывающих, что это связано с песочницей AppleEvent, представленной в Mojave.Поэтому я добавил элемент NSAppleEventsUsageDescription с описанием в Info.plist, но безуспешно.

Кто-нибудь знает, как решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 01 апреля 2019

Эта проблема, похоже, исправлена ​​в macOS 10.14.4

0 голосов
/ 10 октября 2018

В качестве временного решения, пока 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)
}
...