【问题标题】:Cocoa WebView Drag-DropCocoa WebView 拖放
【发布时间】:2011-04-08 08:28:40
【问题描述】:


在我的应用程序中,我有一个 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,我 不返回拖动操作 NONE,但返回 NSDragoperationEvery,

问题是,我没有得到方法,prepareForDragOperation 和 PerformDragOperation,

谁能帮帮我,
亲切的问候
罗汉

【问题讨论】:

    标签: objective-c cocoa webview nsoutlineview nsdragginginfo


    【解决方案1】:

    大家好
    感谢您查看它, 它通过覆盖解决了

    - (NSDragOperation)draggingUpdated:(id < NSDraggingInfo >)sender{
        [self log:@"Inside Dragging updated"];
        return NSDragOperationEvery;
    }
    

    虽然在文档中提到它是一个选项,如果它没有实现,它将从 dragEnter 方法中获取返回值,

    也许对于我自己的数据类型,它会得到 NONE 表单 WebView 方法并且一旦我覆盖它就可以工作。
    亲切的问候 罗汉

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-26
      • 2011-01-28
      • 1970-01-01
      相关资源
      最近更新 更多