在我的应用程序中,我有一个NSOutlineView和一个WebView,
用户允许将任何项从大纲视图拖到WebView,在此基础上,我将处理数据库事务,
在大纲视图中,我实现了以下方法:
- (BOOL)outlineView:(NSOutlineView *)outlineView writeItems:(NSArray *)items toPasteboard:(NSPasteboard *)pboard{
[self log:@"write Items”];
// Some other code to prepare the Write Item,
}
- (NSDragOperation)outlineView:(NSOutlineView *)outlineView validateDrop:(id < NSDraggingInfo >)info proposedItem:(id)item proposedChildIndex:(NSInteger)index{
}
- (BOOL)outlineView:(NSOutlineView *)outlineView acceptDrop:(id < NSDraggingInfo >)info item:(id)item childIndex:(NSInteger)index{
}在WebView方面,我实现了以下方法
- (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender {
NSPasteboard *pboard;
NSDragOperation sourceDragMask;
[self log:@"Inside draggingEntered”];
return NSDragOperationEvery;
}
- (BOOL)prepareForDragOperation:(id < NSDraggingInfo >)sender{
}
- (BOOL)performDragOperation:(id < NSDraggingInfo >)sender{
}现在,当我将一个元素从大纲视图拖到WebView时,我可以看到,正在调用大纲视图的writeItem,
在Webview中,DragEnter是从哪里调用的,我不是返回拖动操作,而是返回NSDragoperationEvery,
问题是,我没有办法,prepareForDragOperation和PerformDragOperation,
有人能帮帮我吗,
亲切的问候
罗汉
发布于 2011-04-08 11:05:07
嗨,伙计们
谢谢你查看它,它通过重写解决了。
- (NSDragOperation)draggingUpdated:(id < NSDraggingInfo >)sender{
[self log:@"Inside Dragging updated"];
return NSDragOperationEvery;
}虽然在文档中它是作为一个选项提到的,如果它没有实现,它将从dragEnter方法中获取返回值,
对于我自己的数据类型,它可能没有任何形式的WebView方法,并且一旦我覆盖它就可以工作了。
善待罗汉
https://stackoverflow.com/questions/5592475
复制相似问题