Получение активного приложения не является проблемой, у меня уже есть это.Как отправить нажатие клавиши «Cmd-C» активному приложению в объективе-c или сообщить программе выполнить операцию копирования?
Я хочу знать, как отправить комбинацию клавиш «Cmd-C» в активное приложение, чтобы он помещал выделенный текст в буфер обмена (общий картон).
Или еще лучше: как сообщить активному приложению выполнить операцию копирования без отправки нажатия клавиши или без выделения меню «Редактировать» при срабатывании операции копирования.
Я не могу использовать NSAppleScript (10.2), потому что этот конкретный класс должен быть как можно более совместим с предыдущим (до 10.0 в идеале).
Я посмотрел на NSAppleEvents (который, казалось бы, пошел), но не может найти способ сделать это. Конкретный ответ был бы очень желанным!
Заранее благодарен!
UPDATE:
Решение NSAppleScript Роб работает, но я по-прежнему заинтересованы в этом без необходимости NSAppleScript. Я попытался использовать CGPostKeyboardEvent (используя последнее логическое значение, чтобы установить ключ в состояние «вверх» или «вниз»), но я не могу найти коды клавиш или таблицы символов. Может ли кто-нибудь уточнить, как CGPostKeyboardEvent будет использоваться для ввода «c»? (таблица CGCharCode и CGKeyCode была бы идеальной).
Спасибо за быстрый ответ, но ссылка на GCPostKeyboardEvent говорит, что этот метод устарел в 10.6 ... Я работаю над коммерческим продуктом, и мне нужно будущее решение. Обсуждение говорит, что CGEventCreateKeyboardEvent будет хорошим кандидатом на замещение, но он поддерживается только с 10.4 и выше ... есть ли другой способ сделать это? – Form
@Form Я думаю, что способ обработки это условная компиляция. Используйте CGPostKeyboardEvent для <10.3 и CGEventCreateKeyboardEvent для> = 10.4 – Amok
Поддержка отбрасывания Apple для SDK 10.6 является наименьшей из ваших проблем. Особенно вы пытаетесь настроить таргетинг до 10.4, что, я полагаю, будет 10.3.9, поскольку это самый ранний универсальный SDK. – Darren