Pregunta

El siguiente código AppleScript funciona bien:

tell application "Adium" to tell first account to make new chat with contacts {first contact} with new chat window

Pero ¿cómo puedo hacer lo mismo usando ScriptingBridge de cacao?

¿Fue útil?

Solución

En general, usted debería ser capaz de hacerlo después de Apple Puente de secuencias de comandos Guía de programación de cacao . Para empezar, he creado un archivo de cabecera para Adium ejecutando sdef /Applications/Adium.app | sdp -fh --basename Adium en la Terminal (Adium.h crea en el directorio actual). El archivo de cabecera producida da pistas sobre cómo hacer el AppleScript llama a través del Puente de secuencias de comandos.

El problema que me encontré es que no puedo ver un camino, basado en el archivo de cabecera generado, hacer make new chat with contacts {...} with new chat window (Puedo hacer un nuevo chat y tal vez hasta engancharlo en una nueva ventana, pero no pude encontrar una manera de hacer que el chat tomar el contacto).

La segunda mejor opción podría ser usar NSAppleScript para ejecutar su código AppleScript válida:

NSAppleScript *appleScript = [[NSAppleScript alloc] initWithSource:@"tell application \"Adium\" to tell first account to make new chat with contacts {first contact} with new chat window"];
NSDictionary *errorDictionary;
NSAppleEventDescriptor *eventDescriptor = [appleScript executeAndReturnError:&errorDictionary];

Otros consejos

A falta de uso de los códigos de eventos primas de Apple, no se puede. En caso de trabajar con objc-appscript sin embargo. El funcionamiento de su comando de AppleScript través de la herramienta de ASTranslate appscript produce lo siguiente:

#import "ADGlue/ADGlue.h"
ADApplication *adium = [ADApplication applicationWithName: @"Adium"];
ADReference *ref = [[adium accounts] at: 1];
ADMakeCommand *cmd = [[[[ref make] newChatWindow: ASTrue] withContacts: [NSArray arrayWithObject: [[[[adium accounts] at: 1] contacts] at: 1]]] new_: [ADConstant chat]];
id result = [cmd send];
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top