最後のアクティブなアプリへのコピー/貼り付けを実行しようとしています。これが私のコードです:
NSString *appleScriptSource = [NSString stringWithFormat:@"\ntell application \"%@\" to activate\ntell application \"System Events\" to tell process \"%@\"\nkeystroke \"v\" using command down\nend tell", [lastApp localizedName], [lastApp localizedName]];
NSDictionary *error;
NSAppleScript *aScript = [[NSAppleScript alloc] initWithSource:appleScriptSource];
NSAppleEventDescriptor *aDescriptor = [aScript executeAndReturnError:&error];
問題は、一部のコンピューターでは正常に動作するが、他のコンピューターでは失敗することです。executeAndReturnError によって返されるエラーからの私のエラー出力は次のとおりです。
2012-06-13 17:43:19.875 Mini Translator[1206:303] (null) (error: {
NSAppleScriptErrorBriefMessage = "Expected end of line but found \U201c\"\U201d.";
NSAppleScriptErrorMessage = "Expected end of line but found \U201c\"\U201d.";
NSAppleScriptErrorNumber = "-2741";
NSAppleScriptErrorRange = "NSRange: {95, 1}";
})
それが何を意味するのか、なぜそれが起こるのか理解できないようです。
生成された apple-script コードを Apple Script エディターにコピーしてみましたが、ここでは問題なく動作します。
私のアプリはサンドボックス化されています - サポートしたいアプリのキー「com.apple.security.temporary-exception.apple-events」のバンドル識別子を追加しました。
助言がありますか?