2

我正在两个NSTableViews. 到目前为止,我已经设法让拖放工作正常。但是,我的具体需求是能够验证谁在启动拖动以及谁在接受放置。我的应用程序中不仅有两个 nsTableView,因此我需要确保正确的表正在通信。

事实证明,在 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

在这两种情况下,“视图”都是接受者表。也就是说,它是接收丢弃的表。有什么方法可以知道哪个表启动了拖动?

感谢您的帮助,谢谢!

4

1 回答 1

1

这比看起来简单得多,我希望我找到的答案对其他人有所帮助

在方法中

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

(id)info具有有关拖动源的所有信息。所以像

         NSTableView *dragSource = [info draggingSource]; 

会给你dragSource。

于 2013-04-02T20:43:41.767 回答