【问题标题】:Cocoa: Call App Delegate Method from another ClassCocoa:从另一个类调用 App Delegate 方法
【发布时间】:2010-12-06 04:17:58
【问题描述】:

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

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

谢谢。

【问题讨论】:

    标签: objective-c cocoa nsapplication


    【解决方案1】:

    我认为问题在于您指的是应用程序而不是它的委托。这应该有效:

    苹果机

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

    将 YourAppDelegate 替换为您的实际应用代理名称,并确保 #import 它。

    【讨论】:

    • 不应该是NSApplication吗?
    • @JasperPol 没错,当我 4 年前回答这个问题时,我只是在开发 iOS 应用程序。固定。
    猜你喜欢
    • 1970-01-01
    • 2016-05-06
    • 2014-09-16
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    相关资源
    最近更新 更多