1

プログラムでFinderをMountainLionで更新させたい。以前のバージョンのOSXでは、次のスニペットが機能します。

OSStatus    SendFinderSyncEvent( const FSRef* inObjectRef )
{
    AppleEvent  theEvent = { typeNull, NULL };
    AppleEvent  replyEvent = { typeNull, NULL };
    AliasHandle itemAlias = NULL;
    const OSType    kFinderSig = 'MACS';

OSStatus    err = FSNewAliasMinimal( inObjectRef, &itemAlias );
if (err == noErr)
{
    err = AEBuildAppleEvent( kAEFinderSuite, kAESync, typeApplSignature,
        &kFinderSig, sizeof(OSType), kAutoGenerateReturnID,
        kAnyTransactionID, &theEvent, NULL, "'----':alis(@@)", itemAlias );

    if (err == noErr)
    {
        err = AESendMessage( &theEvent, &replyEvent, kAENoReply,
            kAEDefaultTimeout );

        AEDisposeDesc( &replyEvent );
        AEDisposeDesc( &theEvent );
    }

    DisposeHandle( (Handle)itemAlias );
}

    return err;
}

Mountain Lionでこれを行うための代替手段を知っている人はいますか?ありがとう

4

1 に答える 1

1

それも私には機能しません。(Bud ID 12571746)
Apple は、多くの開発者がこれを必要としていることに注意する必要があります。http://bugreporter.apple.comでバグ レポートを提出してください。重複としてクローズされる可能性がありますが、すべての投票が重要です。

ファインダーウィンドウを更新するには、ファイルを作成および削除できます。この投稿を見てください。

于 2013-03-21T07:00:05.783 に答える