Я хочу выполнить операции копирования / вставки с помощью Swift с аудиоклипами на MacOS. Это можно сделать с помощью Finder, щелкнув правой кнопкой мыши аудиоклип, выбрав «Копировать», а затем вставив его.
В настоящее время, когда аудиофайл копируется, он отправляется в стандартный системный буфер обмена, к которому можно получить доступ через Finder> Правка> Показать буфер обмена. При просмотре буфера обмена я вижу заголовок аудиофайла (не пути) в основном поле буфера обмена и нижний колонтитул с надписью «Содержимое буфера обмена: текст / элементы» внизу.
Я хочу скопировать это Поведение со Swift, поэтому я считаю, что я должен использовать экземпляр NSPasteboard.general, поскольку это позволит мне изменить содержимое буфера обмена.
Это то, что я имею до сих пор, когда дело доходит до копирования элемента в буфер обмена:
let pasteboard = NSPasteboard.general
pasteboard.clearContents()
pasteboard.setString(audioPath.absoluteString, forType: .URL)
Однако это приводит к пустому основному полю буфера обмена и отображению нижнего колонтитула " Содержимое буфера обмена: неизвестно ".
Я также пытался сделать:
let audio = try Data(contentsOf: path)
let pasteboard = NSPasteboard.general
pasteboard.clearContents()
pasteboard.setData(audio, forType: .sound)
Но в буфере обмена было бы то же сообщение.
Как можно программно воссоздать способность Finder копировать / вставлять, используя Swift?