2010-12-06 60 views
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?

謝謝。

回答

10

我認爲問題在於您指的是應用程序,而不是其代表。這應該工作:

的Mac

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

與您的實際應用程序代理名稱替換YourAppDelegate,並且是一定#IMPORT它。

+1

不應該是NSApplication? – Jasper 2015-03-02 10:18:05