
Apple обновила документацию AppKit, чтобы проинформировать разработчиков о значительном изменении в буфере обмена macOS, системном механизме для передачи данных между приложениями и устройствами Apple.
Вот как это будет работать:
В настоящее время приложения macOS могут программно считывать данные из буфера обмена (термин Apple для буфера обмена) без ведома пользователя или предварительного разрешения. Это отличается от iOS, где с версии iOS 14 отображаются уведомления о конфиденциальности, когда приложение пытается прочитать данные из буфера обмена без ввода пользователя.
Вскоре, как отметил Синдре Сорхус в Bluesky, Apple представит новые detect
методы в NSPasteboard
и NSPasteboardItem
. Эти методы позволят приложениям проверять, какие типы данных находятся в буфере обмена, но без фактического чтения содержимого и, к счастью, без вызова уведомления.
Более того, пользователи смогут контролировать доступ к буферу обмена на уровне каждого приложения: они смогут разрешить его всегда, полностью заблокировать или получать запрос каждый раз, когда приложение пытается получить к нему доступ.
Вот как это объясняет Apple:
Подготовьте свое приложение к предстоящей функции в macOS, которая уведомляет пользователя устройства, когда ваше приложение программно считывает общий буфер обмена. Система показывает уведомление только в том случае, если доступ к буферу обмена не был результатом ввода пользователем элемента пользовательского интерфейса, который система считает связанным с буфером обмена.
В журнале изменений разработчикам сообщается, что они могут использовать эти API до изменения и как они могут протестировать новое поведение на своих Mac. Неясно, как это изменение повлияет на менеджеры буфера обмена, если вообще повлияет.