Какао: вызов метода делегата приложения из другого класса

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

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

Спасибо.


person minimalpop    schedule 06.12.2010    source источник


Ответы (1)


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

Mac

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

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

person Matthew Frederick    schedule 06.12.2010
comment
Разве это не должно быть NSApplication? - person Jasper; 02.03.2015
comment
@JasperPol Верно, я работал только над приложениями для iOS, когда ответил на это 4 года назад. Фиксированный. - person Matthew Frederick; 03.03.2015