2011-08-09 6 views
1

NSTableViewをthe NSTableViewDataSource Methodsなしで使用したいと思いますが、通常のビューと同じです。 draggingEntered:draggingExited:が呼び出されていますが、NSDragOperationCopyを返すと、緑色プラスマウスポインタが表示されず、performDragOperation:が呼び出されません。私は、これらの方法でNSTableViewをサブクラス化NSTableViewは通常のドラッグアンドドロップメソッドを処理できますか?

- (void)awakeFromNib 
{ 
    [self registerForDraggedTypes: [NSArray arrayWithObject: NSFilenamesPboardType]]; 
} 

- (NSDragOperation)draggingEntered: (id <NSDraggingInfo>)sender 
{ 
    NSLog(@"draggingEntered"); //Gets called 
    return NSDragOperationCopy; 
} 

- (void)draggingExited: (id <NSDraggingInfo>)sender 
{ 
    NSLog(@"draggingExited"); //Gets called 
} 

- (BOOL)performDragOperation: (id <NSDraggingInfo>)sender 
{ 
    NSLog(@"performDragOperation"); //Doesn't get called 
    return YES; 
} 

答えて

0

ドキュメントはそうはい、それは通常のドラッグアンドドロップを手なければならない、それはNSDraggingDestinationとNSDraggingSourceプロトコルに準拠言います。

nsviewの-registerForDraggedTypes:メソッドを試してみるとよいでしょう。

+0

私はそれを試みました。それ以外の場合は、 'draggingEntered:'と 'draggingExited:'は呼び出されませんでした。 – Jim893

関連する問題