2013-05-01 2 views
6

Несколько менеджеров буфера обмена OSX из AppStore показывают возможность определять исходное приложение содержимого, которое было скопировано в буфер обмена.Определить исходное приложение текущего содержимого картона

Я пишу некоторый простой наблюдатель буфера обмена и хотел бы показать значок источника-приложения рядом с содержимым, хранящимся в общем виде в NSPasteboard. И я хотел бы знать, как это может быть достигнуто.

Насколько я могу судить, NSPasteboard не предоставляет никакой дополнительной информации, кроме самих данных и данных.

Возможно, есть какие-то события или уведомления, чтобы знать, что была вызвана команда 'copy'? Или какие-то другие способы?

+1

Несколько менеджеров OSX с буфером обмена = CopyLess. Это единственное приложение, которое делает трюк, насколько я могу судить. – UJey

+0

Возможно, они каким-то образом используют AppleScript? – UJey

ответ

6

Я считаю, что способ CopyLess и Alfred 2 (который также поддерживает это) заключается в том, что у них есть таймер, который проверяет буфер обмена на изменения. Когда они видят изменения в буфере обмена, они получают активное приложение и связывают это приложение с изменением. Вероятно, это не надежный метод, но он должен работать в большинстве случаев.

+1

Спасибо @Dustin. Я пришел к такому же выводу. – UJey

2

Там новый квази-стандарт для этого сейчас (по состоянию на декабрь 2016 года), см http://nspasteboard.org

Он работает следующим образом:

  • По умолчанию, программа, которая записывает содержимое буфера обмена принимает на себя что самое раннее приложение - это тот, который заполняет буфер обмена (который, по общему признанию, работает только в том случае, если программа уже запущена, когда установлен контент буфера обмена).

  • Но если есть аромат (вид) буфера обмена типа org.nspasteboard.source, тогда содержимое этого аромата должно быть идентификатором пакета приложения, заполняющего clipbard.

(Это квази-стандарт, так как он был обсужден и согласован заинтересованными членами списка рассылки, управляемый nspasteboard.org)

+0

Кто-нибудь, покажите это разработчикам 1Пактор: Я имею в виду 'org.nspasteboard.source' для своего администратора меню. – UJey

+1

1pw разработчики находятся в списке рассылки. Кто-то просто должен убедить их внедрить новый протокол. –

Смежные вопросы