Cocoa 如何拖放';。txt';obj-c中的文件
我正在尝试编写一些绝对简单的代码,我可以将一个普通的“dot.txt”文件拖到NSWindow上并读取数据(没有比这更有趣的了),但我能找到的所有示例都使用图像和NSView等。。苹果在其“Cocoa的拖放编程主题”文档中的“拖动文件内容”部分证实,拖动到一个普通的NSWindow(而不是NSView等)上是可能的,并且似乎完全讨论了我要做的事情,但作为一个相对新手,我仍然发现它对图像和帧的引用令人困惑 任何人都可以帮助我开始向我展示“registerForDragedTypes”的位置,而不是将其放在“initWithFrame”或“initWithCoder”方法中,以及要注册的类型吗?一旦我的窗口识别出我的拖拽,我以后就可以担心其他的“性能拖拽操作”和“拖拽”了Cocoa 如何拖放';。txt';obj-c中的文件,cocoa,drag-and-drop,nsdragginginfo,Cocoa,Drag And Drop,Nsdragginginfo,我正在尝试编写一些绝对简单的代码,我可以将一个普通的“dot.txt”文件拖到NSWindow上并读取数据(没有比这更有趣的了),但我能找到的所有示例都使用图像和NSView等。。苹果在其“Cocoa的拖放编程主题”文档中的“拖动文件内容”部分证实,拖动到一个普通的NSWindow(而不是NSView等)上是可能的,并且似乎完全讨论了我要做的事情,但作为一个相对新手,我仍然发现它对图像和帧的引用令人困惑 任何人都可以帮助我开始向我展示“registerForDragedTypes”的位置,而不是
谢谢:-)这是我正在编写的代码的一部分。 您可以在创建新项目时找到此方法
-(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
方法中注册拖动类型。不过,总的来说,答案是正确的。