NSTableView可以处理正常的拖放方法吗?

时间:2011-08-09 18:50:23

标签: objective-c drag-and-drop nstableview nsdragginginfo

我想在没有the NSTableViewDataSource Methods的情况下使用NSTableView,但就像普通视图一样。我正在调用draggingEntered:draggingExited:但是当我返回NSDragOperationCopy时,我看不到绿色加鼠标指针而performDragOperation:没有被调用。

我使用以下方法将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;
}

1 个答案:

答案 0 :(得分:0)

文档说它符合NSDraggingDestination和NSDraggingSource协议,所以是的,它应该进行正常的拖放操作。

您可以尝试使用nsview中的-registerForDraggedTypes:方法。