5

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

任何人都可以帮助我开始,向我展示“registerForDraggedTypes”的位置,而不是将其放入说,“initWithFrame”或“initWithCoder”方法,以及注册什么类型?一旦我得到窗口来识别我的拖动,我可以稍后再担心其他“performDragOperation”和“draggingEntered”的东西。

谢谢 :-)

4

1 回答 1

6

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

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

我也是新手。无论如何,这对我有用。

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

打开MainMenu.xib,会弹出Interface Builder。在 Interface Builder 中,将“App Delegate”(此对象)连接到“Window”的“delegate”出口。(您可以在 Inspector 面板中找到“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;
}
于 2010-01-10T08:27:56.127 回答