gpt4 book ai didi

cocoa - 如何在 obj-c 中拖放 '.txt' 文件

转载 作者:行者123 更新时间:2023-12-03 16:10:59 24 4
gpt4 key购买 nike

我正在尝试编写一些绝对准系统的代码,在其中我可以将普通的“dot.txt”文件拖到 NSWindow 上并读取数据(没有什么比这更奇特的了),但是我能够的所有示例查找使用图像和 NSView 等。Apple 在其“Cocoa 拖放编程主题”文档中的“拖动文件内容”部分确认了拖动到普通 NSWindow(而不是拖动到 NSView 等)上是可能的,并且似乎正在讨论这正是我想要做的,但作为一个相对新手,我仍然发现它对图像和框架的引用令人困惑。

除了将其放入“initWithFrame”或“initWithCoder”方法之外,任何人都可以帮助我开始向我展示在哪里“registerForDraggedTypes”,以及要注册哪些类型?一旦我让窗口识别我的拖动,我就可以稍后担心其他“performDragOperation”和“draggingEntered”内容。

谢谢:-)

最佳答案

这是我正在处理的代码的一部分。当你创建一个新项目时,你可以找到这个方法。

-(void)applicationDidFinishLaunching:(NSNotification*)aNotification
{
[window registerForDraggedTypes:[NSArray arrayWithObjects:NSFilenamesPboardType, nil]];
}

我也是新手。不管怎样,这对我有用。

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

打开MainMenu.xib,会弹出Interface Builder。在 Interface Builder 中,将“App Delegate”(此对象)连接到“Window”的“delegate”导出。(您可以在检查器面板中找到“委托(delegate)”导出)现在,“App Delegate”接收“Window”的事件消息。

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

-(NSDragOperation)draggingEntered:(id < NSDraggingInfo >)sender
{
return NSDragOperationGeneric;
}
-(BOOL)prepareForDragOperation:(id < NSDraggingInfo >)sender
{
NSPasteboard* pbrd = [sender draggingPasteboard];
// Do something here.
return YES;
}

关于cocoa - 如何在 obj-c 中拖放 '.txt' 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2035550/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com