Может кто-нибудь сказать мне, как вставить текст из приложения am (которое находится в строке состояния) в NSTextField, который находится внутри другого приложения.
Вставка - это то, что происходит вполучение заявки.Запись в буфер обмена - это копирование.
Более того, вы не можете предполагать, что пользователь захочет вставить в NSTextField.Это может быть NSTextView, или текстовое поле в WebView, или элемент управления Carbon EditText или MLTE, или какой-либо другой текстовый редактор, такой как текстовый редактор Qt или wxWidgets.Они могут даже использовать приложение с представлением списка, которое позволяет им вставлять текст непосредственно в него.
Таким образом, нет никакого программного способа напрямую сказать приложению «вот текст, вставьте его, пожалуйста».Вы должны скопировать его на общий монтажный стол, а затем создать событие, которое обычно должно вызывать вставку самого переднего приложения.Предложение Чарли о «V» - один из способов, хотя и хитрый;макет Dvorak помещает V в другой ключ, а макет «Dvorak QWERTY ⌘» ставит V-with-⌘ (в отличие от V-без-without) на тот же ключ, что и V QWERTY V.
Чтобы создать этоEventВ событии посмотрите на CGEventTap .Вам нужно будет использовать функцию CGEventCreateKeyboardEvent
для создания самого события, и, поскольку эта функция принимает код клавиши, вам нужно будет найти правильный код клавиши для V-части ⌘V комбинация, которая потребует прохождения через Службы ввода текста или Службы раскладки клавиатуры , в зависимости от раскладки.
В этот момент вы можете подумать об использовании Accessibility длянайдите пункт меню «Вставить» в меню «Правка» и отправьте ему сообщение AXPress, но «Вставить» и «Редактировать» - это только английские слова для этих понятий;если вы это сделаете, ваше приложение не будет работать на любом другом языке.Вы можете пойти по порядку (третье меню, шестой элемент меню), но тогда ваше приложение не будет работать в приложениях без меню «Файл», без элемента «Повторить» или с двумя пунктами меню «Отменить» (Photoshop).Создание события ⌘V - это действительно путь.