拖动时滚动NSTableView

时间:2017-06-09 21:17:07

标签: objective-c

我在任何地方找不到答案都没有成功,我认为这很简单,但经过几个小时的挫折之后,我仍然陷入困境,所以这就是我想做的事。

我有一个NSTableView设置,以编程方式填充:

  • (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView;
  • (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row;

只要mousedown移动到视图外,TableView就会向上和向下滚动。

接下来我设置了拖放功能drop,只要我留在当前视图中就能很好地工作。我用:

  • (NSDragOperation)tableView:(NSTableView *)tableView validateDrop:(id)info proposedRow:(NSInteger)row proposedDropOperation:(NSTableViewDropOperation)dropOperation;
  • (BOOL)tableView:(NSTableView *)tableView acceptDrop:(id)info row:(NSInteger)row dropOperation:(NSTableViewDropOperation)operation;
  • (BOOL)tableView:(NSTableView *)tableView writeRowsWithIndexes:(NSIndexSet *)rowIndexes toPasteboard:(NSPasteboard *)pboard;

这最后一个似乎是我问题的症结所在。如果它返回YES,则所选单元格会拖动,但自动滚动会关闭。因此,如果我试图超越表格视图,则没有任何反应。返回NO会停止拖动但重新启用滚动。

那么如何同时进行拖动和滚动?

0 个答案:

没有答案