Программирование с использованием Qt creator и Cocoa (копирование выделенного текста из текущего приложения) - PullRequest
2 голосов
/ 18 марта 2012

Я хотел бы знать, есть ли способ использовать API-интерфейс Cocoa в приложении Qt.

Я уже использовал Windows API для получения выделенного текста из активного приложения.Я хотел бы сделать то же самое с Mac OS.Я пытался создать простое приложение "привет мир" C ++ с xCode, включая <Cocoa/Cocoa.h>, но, как я и ожидал, оно не сработало.Есть ли способ заставить это приложение "привет слова" создавать с помощью какао?

А также, если это возможно, могу ли я получить выделенный текст из активных окон с помощью API-интерфейса Cocoa?

РЕДАКТИРОВАТЬ:

Все в порядкепоэтому я успешно скомпилировал что-то, используя Cocoa.h, благодаря этой теме: Как смешивать Qt, C ++ и Obj-C / Cocoa .

Для решения проблемы выбора вы можете проверитьответы, которые я отправил, которые говорят вам, как это сделать.

1 Ответ

2 голосов
/ 21 марта 2012

Для тех, кому это может быть интересно: я нашел способ получить текущий выделенный текст.

Просто имитируя cmd + c :

Итак, благодаря этому потоку я изменил код, чтобы получить ключ "c", который представлен целым числом 8 (найдено в NSEvent.h), поэтому вот код:

CGEventSourceRef source = CGEventSourceCreate(kCGEventSourceStateCombinedSessionState);
CGEventRef saveCommandDown = CGEventCreateKeyboardEvent(source, (CGKeyCode)8, YES);
CGEventSetFlags(saveCommandDown, kCGEventFlagMaskCommand);
CGEventRef saveCommandUp = CGEventCreateKeyboardEvent(source, (CGKeyCode)8, NO);

CGEventPost(kCGAnnotatedSessionEventTap, saveCommandDown);
CGEventPost(kCGAnnotatedSessionEventTap, saveCommandUp);

CFRelease(saveCommandUp);
CFRelease(saveCommandDown);
CFRelease(source);

Теперь вам просто нужно получить доступ к буферу обмена из Qt, чтобы получить выбор. (Если спросите, я могу поставить код для этого)

В любом случае, благодаря сообществу stackoverflow;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...