Cocoa:从另一个类调用App Delegate方法

min*_*pop 2 cocoa objective-c nsapplication

我目前正在尝试从自定义视图内的拖放操作获取文件的路径,然后将该路径传递给我的应用程序委托.我目前正在使用以下内容:

- (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;

} 
Run Code Online (Sandbox Code Playgroud)

但是,我不断收到一条消息,指出我的应用代表不响应"uploadFiles"方法.它在我的app委托中声明.我是否以正确的方式访问NSApplication?

谢谢.

Mat*_*ick 11

我认为问题在于你指的是申请而不是代表.这应该工作:

苹果电脑

[(YourAppDelegate *)[[NSApplication sharedApplication] delegate] uploadFiles:array]
Run Code Online (Sandbox Code Playgroud)

用您的实际应用程序委托名称替换YourAppDelegate,并确保#import它.