Как вставить некоторые данные в строку AppleScript - PullRequest
1 голос
/ 02 июля 2010

У меня есть функция, которая отправляет строку «theData».Я хочу вставить эту строку здесь, в этом коде.Кто-нибудь, пожалуйста, скажите мне правильный синтаксис для этого?Вещи становятся немного волосатыми с "и".Спасибо!

NSTask *task;
task = [[NSTask alloc] init];
[task setLaunchPath:@"/usr/bin/osascript"];
[task setArguments:[NSArray arrayWithObjects:@"-e", @"tell application \"System Events\"\n", 
                                             @"-e", @"    keystroke \"" + theData + "\"", 
                                             @"-e", @"end tell", nil]];
[task launch];

Ответы [ 2 ]

1 голос
/ 02 июля 2010

icktoofay уже дал более правильный ответ, но позвольте мне показать, как вставить строку в строку:

       NSString* toBeInserted = @"for";
       NSString* result = [NSString stringWithFormat:@"in%@mation",toBeInserted]; 
       NSLog(@"%@",result);

Это дает information.Для получения более подробной информации читайте Документ Apple .

Я имею в виду, документ Apple достаточно хорош, на самом деле.Прочтите его, прежде чем задавать вопрос здесь, в SO.

Кстати, вам не нужно запускать osascript для выполнения AppleScript.Вы можете использовать NSAppleScript как в

NSAppleScript* script=[[NSAppleScript alloc] initWithSource:@"tell app \"Finder\" to activate "];
NSDictionary*error;
[script executeAndReturnError:&error];
[script release];

Ну, NSAppleScript - это странность, которая требует NSDictionary, а не NSError, чтобы сообщить об ошибке ...

Или вы можете использовать Мост сценариев для сопоставления объектов AppleScript с объектами Objective-C.

0 голосов
/ 02 июля 2010

Я вижу, что у вас есть другой способ сделать это, но вы можете использовать строки форматирования, чтобы выполнить это

[NSString stringWIthFormat: @"part one %@ part 2", theData];

Предполагая, что данные являются строкой nsst, содержащей "hello", это даст вам:

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