2

現在、カスタム ビュー内のドラッグ アンド ドロップ操作からファイルのパスを取得し、そのパスをアプリ デリゲートに渡そうとしています。現在、次のものを使用しています。

- (BOOL)performDragOperation:(id <NSDraggingInfo>)sender 
{

    NSPasteboard *pb = [sender draggingPasteboard];
    NSString *type = [pb availableTypeFromArray:[NSArray arrayWithObject:NSFilenamesPboardType]];
    NSArray *array = [[pb stringForType:type] propertyList];

    //access the app delegate
    NSApplication *myApplication;
    myApplication = [NSApplication sharedApplication];

    [myApplication uploadFiles:array];

    return NO;

} 

ただし、アプリのデリゲートが「uploadFiles」メソッドに応答しないというメッセージが表示され続けます。アプリデリゲート内で宣言されています。NSApplication に正しい方法でアクセスしていますか?

ありがとう。

4

1 に答える 1

11

問題は、アプリケーションを参照しているが、そのデリゲートを参照していないことだと思います。これはうまくいくはずです:

マック

[(YourAppDelegate *)[[NSApplication sharedApplication] delegate] uploadFiles:array]

YourAppDelegate を実際のアプリ デリゲート名に置き換え、必ず #import してください。

于 2010-12-06T04:24:52.600 に答える