2010-12-06 59 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