Создать почту со скриптовым мостом
Я пытаюсь создать новое электронное письмо, используя мост сценариев какао, но не могу заставить его работать. У меня так далеко:
MailApplication *mail = [SBApplication applicationWithBundleIdentifier:@"com.apple.Mail"];
MailOutgoingMessage *emailMessage = [[[[mail classForScriptingClass:@"outgoing message"] alloc] initWithProperties:[NSDictionary dictionaryWithObjectsAndKeys: [saveFileName substringToIndex:[saveFileName length]-4], @"subject", @"something about app.", @"content", nil]] autorelease];
// add the object to the mail app
[[mail outgoingMessages] addObject: emailMessage];
emailMessage.visible = YES;
if ( [FileFullName length] > 0 ) {
MailAttachment *theAttachment =
[[[mail classForScriptingClass:@"attachment"] alloc]
initWithProperties:[NSDictionary dictionaryWithObjectsAndKeys:
FileFullName, @"fileName",nil]];
// add it to the list of attachments
[[emailMessage.content attachments] addObject: theAttachment];
[theAttachment release];
}
Когда я пытаюсь установить видимое свойство, я получаю сообщение об ошибке:
-[SBProxyByClass setVisible:]: object has not been added to a container yet; selector not recognized [self = 0x7fd4fae3cc90]
Эта проблема появилась, когда я добавил песочницу для приложения. Кто-нибудь может указать правильное направление?
1 ответ
Решение
Если ваш код может работать до того, как вы включите "песочницу", вы должны сделать это прежде, чем отправлять почту. Добавьте следующий код в ваш Entitlements.plist.
<key>com.apple.security.temporary-exception.apple-events</key>
<array>
<string>com.apple.mail</string>
</array>