Cocoa 如何拖放';。txt';obj-c中的文件

Cocoa 如何拖放';。txt';obj-c中的文件,cocoa,drag-and-drop,nsdragginginfo,Cocoa,Drag And Drop,Nsdragginginfo,我正在尝试编写一些绝对简单的代码,我可以将一个普通的“dot.txt”文件拖到NSWindow上并读取数据(没有比这更有趣的了),但我能找到的所有示例都使用图像和NSView等。。苹果在其“Cocoa的拖放编程主题”文档中的“拖动文件内容”部分证实,拖动到一个普通的NSWindow(而不是NSView等)上是可能的,并且似乎完全讨论了我要做的事情,但作为一个相对新手,我仍然发现它对图像和帧的引用令人困惑 任何人都可以帮助我开始向我展示“registerForDragedTypes”的位置,而不是

我正在尝试编写一些绝对简单的代码,我可以将一个普通的“dot.txt”文件拖到NSWindow上并读取数据(没有比这更有趣的了),但我能找到的所有示例都使用图像和NSView等。。苹果在其“Cocoa的拖放编程主题”文档中的“拖动文件内容”部分证实,拖动到一个普通的NSWindow(而不是NSView等)上是可能的,并且似乎完全讨论了我要做的事情,但作为一个相对新手,我仍然发现它对图像和帧的引用令人困惑

任何人都可以帮助我开始向我展示“registerForDragedTypes”的位置,而不是将其放在“initWithFrame”或“initWithCoder”方法中,以及要注册的类型吗?一旦我的窗口识别出我的拖拽,我以后就可以担心其他的“性能拖拽操作”和“拖拽”了


谢谢:-)

这是我正在编写的代码的一部分。 您可以在创建新项目时找到此方法

-(void)applicationDidFinishLaunching:(NSNotification*)aNotification
{       
    [window registerForDraggedTypes:[NSArray arrayWithObjects:NSFilenamesPboardType, nil]]; 
}
我也是新手。不管怎样,这对我来说很有效

然后,这很重要。 我们必须将此对象连接到窗口对象以处理此对象中的丢弃消息

打开MainMenu.xib,界面生成器将弹出。 在界面生成器中,将“应用程序委派”(此对象)连接到“窗口”的“委派”出口。 (您可以在Inspector面板中找到“委派”插座) 现在,“应用程序代理”接收“窗口”的事件消息

然后,在同一类文件中添加更多方法:

-(NSDragOperation)draggingEntered:(id < NSDraggingInfo >)sender
{
    return NSDragOperationGeneric;
}
-(BOOL)prepareForDragOperation:(id < NSDraggingInfo >)sender
{
    NSPasteboard* pbrd = [sender draggingPasteboard];
    // Do something here.
    return YES;
}
-(nsdragooperation)draggingented:(id)发送方
{
返回nsdragoOperationGeneric;
}
-(BOOL)prepareForDragOperation:(id)发送方
{
NSPasteboard*pbrd=[sender draggingPasteboard];
//在这里做点什么。
返回YES;
}

对于具有
窗口
出口的应用程序代理的特定情况,这是可以的,但通常情况下,窗口将由
NSWindowController
管理,并且您将在窗口控制器的
-windowDidLoad
方法中注册拖动类型。不过,总的来说,答案是正确的。