Nstableview:拖放时验证发送方和接收方

时间:2012-10-24 17:28:48

标签: validation drag-and-drop nstableview

我正在两个NSTableViews之间实施拖放操作。到目前为止,我已经设法让拖拽工作得很好。但是,我的具体需求是能够验证谁正在启动拖动以及谁正在接受丢弃。我的应用程序中不仅仅有两个nsTableViews,所以我需要确保正确的表正在进行通信。

事实证明,在validateDrop和acceptDrop方法中,

- (NSDragOperation) tableView: (NSTableView *)view validateDrop:(id)info proposedRow:(NSInteger)row proposedDropOperation:(NSTableViewDropOperation)op

- (BOOL)tableView: (NSTableView *)view acceptDrop: (id)info row: (NSInteger)row dropOperation: (NSTableViewDropOperation)op

'view'是两种情况下的接受者表。也就是说,它是接收掉落的表。有没有办法知道哪个表启动了拖动?

感谢您的帮助,谢谢!

1 个答案:

答案 0 :(得分:1)

这比它看起来要简单得多,我希望我找到的答案可以帮助别人

方法

(BOOL)tableView: (NSTableView *)view acceptDrop: (id)info row: (NSInteger)row dropOperation: (NSTableViewDropOperation)op

(id)info包含有关拖动源的所有信息。像

这样的东西
         NSTableView *dragSource = [info draggingSource]; 

将为您提供dragSource。