Как использовать NSPasteboard для передачи данных между приложениями (используя контекстные меню)

"Объекты NSPasteboard передают данные на сервер и из него. Сервер совместно используется всеми работающими приложениями. Он содержит данные, которые пользователь вырезал или скопировал, а также другие данные, которые одно приложение хочет передать другому. Объекты NSPasteboard являются единственный интерфейс приложения к серверу и ко всем операциям с картоном.

Объект NSPasteboard также используется для передачи данных между приложениями и поставщиками услуг, перечисленными в меню "Сервисы" каждого приложения. Drag pasteboard (NSDragPboard) используется для передачи данных, которые перетаскивает пользователь ".

Я нашел это в документации Apple NSPasteboard. До сих пор я знаю, как использовать монтажную панель только для простого копирования и вставки. Что мне интересно знать, так это то, как данные, не предназначенные для копирования и вставки, могут передаваться через монтажный сервер между приложениями, используя контекстные меню вместо перетаскивания. Например, если пользователь щелкает правой кнопкой мыши слово и нажимает "Искать в словаре" в контекстном меню, то слово (предположительно) отправляется в приложение "Словарь" через монтажную панель.

Может ли кто-нибудь продемонстрировать приложение для проверки концепции, показывающее, как получить доступ к данным на монтажном сервере, на котором хранятся слова, которые пользователь использовал "Искать в словаре"?

1 ответ

Решение

Нам не обязательно находить монтажный картон "Поиск в словаре". (если есть). Но есть метод класса NSPasteboard, который мне подходит для такого использования, если вы хотите передавать данные через монтажную панель через ваши приложения.

+ (NSPasteboard *)pasteboardWithName:(NSString *)name

Просто используйте одно и то же имя для обоих приложений, и вы можете передавать данные между ними. Просто не забудьте позвонить - releaseGlobally на этом картоне, когда вы закончите с ним.

Другие вопросы по тегам