2010-12-06 16 views
2

現在、カスタムビュー内のドラッグアンドドロップ操作からファイルのパスを取得し、そのパスをアプリケーションデリゲートに渡そうとしています。私は現在、以下を使用しています:Cocoa:別のクラスからApp Delegateメソッドを呼び出す

- (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に正しい方法でアクセスしていますか?

ありがとうございました。

答えて

10

私は問題はあなたがアプリケーションを参照しているが、その代理人を参照していないということです。これは動作するはずです:

マック

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

実際のアプリのデリゲート名でYourAppDelegateを交換し、それを#IMPORTことは確実であること。

+1

NSApplicationではありませんか? – Jasper

+0

@JasperPolそうです、私は4年前に私が答えたときに、私はiOSアプリだけで作業していました。一定。 –

関連する問題