0

cocoa スクリプト ブリッジを使用して新しいメールを作成しようとしていますが、うまくいかないようです。

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];
}

visible プロパティを設定しようとすると、次のエラー メッセージが表示されました。

-[SBProxyByClass setVisible:]: object has not been added to a container yet; selector not recognized [self = 0x7fd4fae3cc90]

この問題は、アプリのサンドボックスを追加したときに発生しました。誰でも正しい方向を指すことができますか?

4

1 に答える 1

6

サンドボックスを有効にする前にコードが機能する場合は、メールを送信する前にまずこれを行う必要があります。次のコードを Entitlements.plist に追加します。

    <key>com.apple.security.temporary-exception.apple-events</key>
    <array>
    <string>com.apple.mail</string>
    </array>
于 2012-10-30T06:18:14.493 に答える