私のアプリケーションでは、いくつかのファイルのリストと 1 つの WebView を持つ 1 つの NSOutlineView があり、
ユーザーは任意のアイテムを Outline ビューから WebView にドラッグできます。その上で、データベース トランザクションを処理することを想定しています。
Outline ビューでは、次のメソッドを実装しました。
- (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{
}
Outline ビューから WebView に要素をドラッグすると、Outline ビューの writeItem が呼び出さ
れ、Webview では DragEnter がどこから呼び出されているかがわかりました。ドラッグ操作 NONE を返すのではなく、NSDragoperationEvery を返します。
問題は、メソッド、prepareForDragOperation および PerformDragOperation を取得していないことです。
誰でも私を助けてくれませんか、
よろしく
ローハン