Какао: вызов метода делегирования приложения из другого класса - PullRequest
2 голосов
/ 06 декабря 2010

В настоящее время я пытаюсь получить путь к файлу из операции перетаскивания внутри настраиваемого представления, а затем передать этот путь моему делегату приложения.В настоящее время я использую следующее:

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

Спасибо.

1 Ответ

11 голосов
/ 06 декабря 2010

Я считаю, что проблема в том, что вы ссылаетесь на приложение, а не на его делегата.Это должно работать:

Mac

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

, заменяя YourAppDelegate вашим реальным именем делегата приложения, и обязательно #import его.

...