[1] Когда я выбираю и нажимаю правой кнопкой мыши любой текст в любом приложении, я получаю меню Services
, где я могу щелкнуть, чтобы вызвать любую услугу, такую как Search With Google
.Как щелкнуть правой кнопкой мыши текст и выбрать сервис?
После нажатия на объект, содержащий выделенный текст, автоматически отправляется объект NSPasteboard
.
[2] Сторонние приложения могут использовать функцию BOOL NSPerformService (NSString *itemName, NSPasteboard *pboard)
для программного вызова любой службы.
Здесь приложение должно установить NSPasteboard
объект, который отправляется службе.
Есть ли способ программно ссылаться на какую-либо услугу, но без установки NSPasteboard
объекта (NSPasteboard
объект должен автоматически содержать выделенный текст, как и в [1])?
Как объект NSPasteboard
, содержащий выделенный текст, отправленный службе OS X в [1]? Есть ли частный API?
Спасибо. Это все хорошо, но вместо какао, может ли это сделать приложение? Мое приложение принадлежит службе и должно ее программно использовать. Я не могу имитировать горячую клавишу моего приложения, потому что он может быть удален/изменен пользователем. – Kaatt
Нет, вы не можете программно инициировать вызов службы от имени другого приложения, по крайней мере, не надежно. В каких обстоятельствах вы хотите? То есть, если он не инициируется пользователем, какие критерии вы бы использовали для его запуска? –
Он инициирован пользователем, но не использует горячие клавиши или такие. Как пользовательское оборудование/SMS. – Kaatt